天天看點

DML 觸發器計劃指南

有兩個用于設計 DML 觸發器的選項:

執行 INSTEAD OF 觸發器代替通常的觸發操作。還可以對帶有一個或多個基表的視圖定義 INSTEAD OF

觸發器,這些觸發器可以擴充視圖可支援的更新類型。

在執行 INSERT、UPDATE 或 DELETE 語句操作之後執行 AFTER 觸發器。指定 AFTER 與指定 FOR 相同。AFTER

觸發器隻能在表上指定。

下表對 AFTER 觸發器和 INSTEAD OF 觸發器的功能進行了比較。

函數

AFTER 觸發器

INSTEAD OF 觸發器

适用範圍

表和視圖

每個表或視圖包含觸發器的數量

每個觸發操作(UPDATE、DELETE 和 INSERT)包含多個觸發器

每個觸發操作(UPDATE、DELETE 和 INSERT)包含一個觸發器

級聯引用

無任何限制條件

不允許在作為級聯引用完整性限制目标的表上使用 INSTEAD OF UPDATE 和 DELETE 觸發器。

執行

晚于:

限制處理

聲明性引用操作

建立<b>插入的</b>和<b>删除的</b>表

觸發操作

早于:

替代:

執行順序

可指定第一個和最後一個執行

不适用

<b>插入的</b>和<b>删除的</b>表中的 <b>varchar(max)</b>、<b>nvarchar(max)</b> 和

<b>varbinary(max)</b> 列引用。

允許

<b>插入的</b>和<b>删除的</b>表中的 <b>text</b>、<b>ntext</b> 和 <b>image</b>

列引用。

不允許