創建觸發器前應考慮下列問題
CREATE TRIGGER 語句必須是批處理中的第一個語句
將該批處理中隨後的其它所有語句解釋為 CREATE TRIGGER 語句定義的一部分
創建觸發器的權限默認分配給表的所有者
且不能將該權限轉給其他用戶
觸發器為數據庫對象
其名稱必須遵循標識符的命名規則
雖然觸發器可以引用當前數據庫以外的對象
但只能在當前數據庫中創建觸發器
雖然不能在臨時表或系統表上創建觸發器
但是觸發器可以引用臨時表
不應引用系統表
而應使用信息架構視圖
在含有用 DELETE 或 UPDATE 操作定義的外鍵的表中
不能定義 INSTEAD OF 和 INSTEAD OF UPDATE 觸發器
雖然 TRUNCATE TABLE 語句類似於沒有 WHERE 子句(用於刪除行)的 DELETE 語句
但它並不會引發 DELETE 觸發器
因為 TRUNCATE TABLE 語句沒有記錄
WRITETEXT 語句不會引發 INSERT 或 UPDATE 觸發器
創建觸發器時需指定
名稱
在其上定義觸發器的表
觸發器將何時激發
激活觸發器的數據修改語句
有效選項為 INSERT
UPDATE 或 DELETE
多個數據修改語句可激活同一個觸發器
例如
觸發器可由 INSERT 或 UPDATE 語句激活
執行觸發操作的編程語句
多個觸發器
一個表中可有同類型的多個 AFTER 觸發器
前提條件是它們的名稱各不相同
每個觸發器可以執行多個函數
但是
每個觸發器只能應用於一個表
而單個觸發器可應用於三個用戶操作(UPDATE
INSERT 和 DELETE)的任何子集
一個表只能有一個給定類型的 INSTEAD OF 觸發器
觸發器權限和所有權
CREATE TRIGGER 權限默認授予定義觸發器的表所有者
sysadmin 固定服務器角色成員以及 db_owner 和 db_ddladmin 固定數據庫角色成員
並且不可轉讓
如果在某個視圖上創建 INSTEAD OF 觸發器
則所有關系鏈將斷開(如果視圖所有者不同時擁有視圖和觸發器所引用的基表)
對於不屬於視圖所有者的基表
表所有者必須單獨地將必要的權限授予正閱讀或更新該視圖的任何人
如果同一用戶擁有視圖和基礎基表
則視圖和基礎基表必須授予其他用戶視圖的權限
而非個別基表的權限
創建觸發器
Transact
SQL參考(點擊查看)
如何創建觸發器(企業管理器):
展開服務器組
然後展開服務器
展開
數據庫
文件夾
展開含觸發器的表所屬的數據庫
然後單擊
表
文件夾
在詳細信息窗格中
右擊將在其上創建觸發器的表
指向
所有任務
菜單
然後單擊
管理觸發器
命令
在
名稱
中
單擊 <新建>
在
文本
框中輸入觸發器的文本
用 CTRL
TAB 鍵來縮進觸發器的文本
若要檢查語法
單擊
檢查語法
命令
From:http://tw.wingwit.com/Article/os/xtgl/201311/9469.html