共用方式為


DML 觸發程序計劃指導方針

Microsoft SQL Server 2005 在設計 DML 觸發程序時提供兩個選項:

  • INSTEAD OF 觸發程序是用來代替正常的觸發動作。INSTEAD OF 觸發程序也可以針對具有一或多個基底資料表之檢視來定義,以延伸檢視可支援的更新類型。
  • AFTER 觸發程序會在執行過 INSERT、UPDATE 或 DELETE 陳述式的動作後才執行。指定 AFTER 和指定 FOR 是一樣的。AFTER 觸發程序只能針對資料表來指定。

下表比較 AFTER 與 INSTEAD OF 觸發程序的功能。

函數 AFTER 觸發程序 INSTEAD OF 觸發程序。

適用性

資料表

資料表與檢視

每個資料表或檢視的數量

每個觸發動作 (UPDATE、DELETE 與 INSERT) 有多個

每個觸發動作 (UPDATE、DELETE 與 INSERT) 各一個

串聯參考

沒有限制

INSTEAD OF UPDATE 及 DELETE 觸發程序不允許用於串聯參考完整性條件約束的目標資料表。

執行

之後:

  • 條件約束處理
  • 宣告性參考動作
  • inserteddeleted 資料表建立
  • 觸發動作

之前:

  • 條件約束處理

取代:

  • 觸發動作

之後:

  • inserteddeleted 資料表建立

執行順序

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

不適用

inserteddeleted 資料表參考 varchar(max)nvarchar(max) 以及 varbinary(max) 資料行。

允許

允許

inserteddeleted 資料表參考 textntext 以及 image 資料行。

不允許

允許

請參閱

概念

使用插入和刪除的資料表

說明及資訊

取得 SQL Server 2005 協助