:
FOREIGN KEY PRIMARY KEY.
. FOREIGN KEY . Database Engine . , . , PRIMARY KEY FOREIGN KEY, , , .
FOREIGN KEY
SQL Server FOREIGN KEY ( ), FOREIGN KEY , . , FOREIGN KEY . , 253 FOREIGN KEY, 253 FOREIGN KEY. FOREIGN KEY.
. orderTable , partTable, .
CREATE TABLE orderTable
(orderId int,
partId int
FOREIGN KEY REFERENCES partTable(partId)
ON DELETE NO ACTION,
quantity int);
, , , NULL.
. . , , . . .
, , .
CREATE TABLE complexPartTable
(
vendorId int,
vendorPartId int,
name char(30),
weight decimal(6,2),
color char(15),
CONSTRAINT [PK_complexPartTable] PRIMARY KEY CLUSTERED
|
|
(
vendorId,
vendorPartId
)
)
DML - T-SQL ( ), (DML) . DML- INSERT, UPDATE DELETE, . DML- Transact-SQL. , , , . (, ) .
DML- :
; .
INSERT, UPDATE DELETE , , CHECK.
CHECK, DML- . , SELECT , .
.
DML- (INSERT, UPDATE DELETE) .
DML
AFTER
AFTER INSERT, UPDATE DELETE. AFTER FOR, Microsoft SQL Server. AFTER .
INSTEAD OF
INSTEAD OF INSERT, UPDATE DELETE. INSTEAD OF , .
, , . .. 32 . AFTER nested triggers. INSTEAD OF .
, , .
, , . , , PRINT, .
|
|
AFTER , RECURSIVE_TRIGGERS.
:
, , . , T3; Trig3. Trig3 T3, Trig3 .
SQL Server 2008 , , , (AFTER INSTEAD OF). , INSTEAD OF , INSTEAD OF , AFTER. AFTER , AFTER , INSTEAD OF. , T4. Trig4 INSTEAD OF. Trig4 T5. Trig5 AFTER. Trig5 T4, Trig4 INSTEAD OF. Trig4.
, , (AFTER INSTEAD OF). , . , , INSTEAD OF , , INSTEAD OF. , AFTER , , AFTER. , T1. Trig1 AFTER. Trig1 T2; Trig2 AFTER. Trig2, , T1, Trig1 AFTER.
RECURSIVE_TRIGGERS OFF, AFTER. AFTER, nested triggers 0.