跳转到内容

触发器 (数据库)

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是触发器 (数据库)当前版本,由Cwek留言 | 贡献编辑于2023年9月1日 (五) 03:32 top。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

觸發式(英語: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 |

參考資料

[编辑]
  1. ^ CRAETE TRIGGER (Transact-SQL). [2008-09-18]. (原始内容存档于2016-05-06).