前文介紹觸發器概念、作用與基礎問題,本節詳細說明 MS SQL Server 中用 Enterprise Manager 與 Transact-SQL 建立觸發器的方法。
建立觸發器前的七大考量因素
CREATE TRIGGER 必須是批次的第一條語句
- 表擁有者擁有建立觸發器預設權限,**不可傳遞給其他用戶**
- 觸發器為資料庫物件,命名須符合命名規範
- 觸發器 SQL 中可參照其他資料庫物件,但**只能在當前資料庫建立**
- 可參照視圖/臨時表,但**不可在視圖/臨時表上建立觸發器**,僅能在基表或建立視圖的表上建立
- 一個觸發器**只能對應一個表**
TRUNCATE TABLE 雖同無 WHERE 的 DELETE,但**未記入日誌,無法觸發 DELETE 型觸發器**
WRITETEXT 無法觸發 INSERT 或 UPDATE 型觸發器
建立觸發器必須指定三要素
- 觸發器名稱
- 定義觸發器的表
- 啟動觸發器的修改語句(
INSERT/DELETE/UPDATE),兩三種不同語句可觸發同一觸發器(如 INSERT 與 UPDATE 同時啟動)
12.6.1 使用 Enterprise Manager 建立觸發器
- 啟動 Enterprise Manager,登入指定伺服器
- 展開資料庫,再展開目標表所在資料庫,點擊該表
- 右鍵選擇「ALL Tasks」→「Manage Triggers…」
- 名稱框選「new」,文字框輸入觸發器文本

- 點擊「Check Syntax」檢查語法
- 點擊「Apply」,名稱下拉清單出現新觸發器名稱
- 點擊「OK」關閉視窗,建立成功
12.6.2 使用 CREATE TRIGGER 命令建立觸發器


參數說明
trigger_name:使用者要建立的觸發器名稱