在以上部分我們討論了觸發器的優缺點、工作原理以及創建觸發器的具體方法。接下來我們將闡述各種不同復雜程度的觸發器的應用。
12.9.1 插入型觸發器的應用
12.9.1 插入型觸發器的應用
更新型觸發器有兩種類型:通常意義上的更新型觸發器和用於檢查列改變的更新型觸發器,這主要是因為更新操作可以涉及到數據項。
通常意義上的更新型觸發器;
在前面我們已經提到更新操作包括兩個部分,先將需更新的內容從表中刪除掉,然後插入新值。因此,更新型觸發器同時涉及到刪除表。和插入表下面結合具體例子來對其進行討論。
在有些更新中,更新的內容並不是整個記錄,而僅僅是一列或幾列,這時就要用到用於檢查列改變的更新型觸發器。它與通常意義上的觸發器不同之處主要表現在它包括以下保留字:
在用Transaction_SQL 的CREATE TRIGGER 命令創建觸發器那部分我們已經給出上述保留字的具體含義。下面我們將給出兩個例子,這兩個例子分別用到了IF UPDATE(column) 和IF (COLUMNS_UPDATED()。
注意:必須首先刪除與表title已建立主外鍵的各關系,上述觸發器才能被觸發。
12.9.4 嵌套觸發器
當某一觸發器執行時,其能夠觸發另外一個觸發器,這種情況稱之為觸發器嵌套。在MS SQL Server 中觸發器能夠嵌套至32 層。如果不需要嵌套觸發器,可以通過sp_configure選項來進行設置。
在執行過程中,如果一個觸發器修改某個表,而這個表已經有其它觸發器,這時就要使用嵌套觸發器。
注意:必須刪除與sales表已建立的各主外鍵關系,上面的觸發器才能被觸發。