觸發式
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
觸發式(英語:trigger)是在資料庫中,在執行對資料有異動的動作時,先行攔截並處理的一種資料庫物件,它大部份會設在資料表中,作為強制執行特定動作的程式,因此又稱為資料操縱語言(DML)觸發式。
觸發程式的好處:
- 可在寫入資料表前,強制檢驗或轉換資料。
- 觸發程式發生錯誤時,異動的結果會被復原。
- 部份資料庫管理系統可以針對資料定義語言(DDL)使用觸發程式,稱為DDL觸發式。
- 可依照特定的情況,替換異動的指令(INSTEAD OF)。
種類
DML觸發程式可以分為數種:
- BEFORE:在異動發生前執行。
- AFTER:在異動發生後執行。
- INSTEAD OF:替換異動的指令。
DDL觸發程式範圍就相當大,對資料庫物件的異動大多都可捕捉,視資料庫管理系統而定。
語法
SQL Server 的 DML 觸發程式可利用下列語法建立[1]:
DELIMITER |
CREATE TRIGGER `<databaseName>`.`<triggerName>`
< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo]<tableName> //dbo(所有者)
FOR EACH ROW
BEGIN
...
END |
參考資料
- ^ CRAETE TRIGGER (Transact-SQL). [2008-09-18]. (原始內容存檔於2016-05-06).
|