在本章第五節我們已經指出SQL Server 2000 支持AFTER 和INSTEAD OF 兩種類型的觸發器。其中INSTEAD OF 觸發器是SQL Server 2000 的新添加的功能,AFTER 觸發器等同於以前版本中的觸發器。當為表或視圖定義了針對某一操作(INSERT、 DELETE、 UPDATE) 的INSTEAD OF 類型觸發器且執行了相應的操作時,盡管觸發器被觸發,但相應的操作並不被執行,而運行的僅是觸發器SQL 語句本身。
INSTEAD OF 觸發器的主要優點是使不可被修改的視圖能夠支持修改。其中典型的例子是分割視圖(partitioned view)。為了提高查詢性能,分割視圖通常是一個來自多個表的結果集,但是也正因此而不支持視圖更新。下面的例子說明了如何使用INSTEAD OF觸發器來支持對分割視圖所引用的基本表的修改。
此時能夠成功執行插入語句 insert into saleview values (‘jul001’,’先科VCD’,200)。 INSTEAD OF 觸發器的另外的優點是,通過使用邏輯語句以執行批處理的某一部分而放棄執行其余部分。比如,可以定義觸發器在遇到某一錯誤時,轉而執行觸發器的另外部分。