触发器 (数据库)

觸發式（）是在資料庫中，在执行對資料有異動的動作時，先行攔截並處理的一種資料庫物件，它大部份會設在資料表中，作為強制執行特定動作的程序，因此又稱為数据操纵语言（DML）触发器。

觸發程式的好處：

 可在寫入資料表前，強制檢驗或轉換資料。
 觸發程序發生錯誤時，異動的結果會被撤銷。
 部份資料庫管理系統可以針對資料定義語言（DDL）使用觸發程序，稱為DDL触发器。
 可依照特定的情況，替換異動的指令（INSTEAD OF）。

種類

DML觸發程序可以分為數種：

 BEFORE：在異動發生前執行。
 AFTER：在異動發生後執行。
 INSTEAD OF：替換異動的指令。

DDL觸發程序範圍就相當大，對資料庫物件的異動大多都可捕捉，視資料庫管理系統而定。

語法

SQL Server 的 DML 觸發程序可利用下列語法建立：

DELIMITER |
CREATE TRIGGER `<databaseName>`.`<triggerName>`
< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo]<tableName> //dbo(所有者)
FOR EACH ROW
BEGIN
...

END |

參考資料

資料庫