触发器(英语: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).