本頁使用了標題或全文手工轉換

觸發程式 (數據庫)

維基百科,自由的百科全書
跳至導覽 跳至搜尋

觸發程序英語: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 |

參考資料[編輯]