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