sql trigger(sqlserver)
在sqlserver中sql触发器,分为三种insert,update,delete,而每种触发器又可以有两种状态,after和instead of。
触发器创建语法如下:
CREATE [OR REPLACE] TRIGGER 触发器名称 [FOR | AFTER | INSTEAD OF] [INSERT | UPDATE | UPDATE OF 列名称 [,列名称,...] | DELETE] ON 表名称 [FOR EACH ROW] [WHEN 触发条件] AS [DECLARE] [程序声明部分 ;] BEGIN 程序代码部分 ; END [触发器名称] ;
其中:用for控制时,它的作用默认是和after一样的,用instead of是,执行SQL语句之前触发触发器。
使用instead of 触发器,它只是触发一个操作,数据并不会真正被操作,你需要在触发器内手工提交数据,如果在instead of触发器你没有手工提交数据,则该条数据的操作会无效。即,instead of触发器,是对当前操作的校验,如果校验不通过,即舍弃,校验通过,手工提交。