首页 > 代码库 > SQL_触发器的总结
SQL_触发器的总结
常见的触发器有三种:分别应用于Insert,Update,Delete事件
创建触发器:
create trigger tr_name
on table/view
{for|on|after|instead of} [update][,][insert][,][delete]
[with encryption]
as {batch|if update(col_name)[{and|or} update(col_name)]}
说明:
1.tr_name:触发器名称
2.on table/view:触发器所作用的表,一个触发器只能作用于一个表
3.for和after同义
4.after与instead of的区别
after,在触发事件发生以后才被激活,只可以建立在表上
instead of,代替了相应的触发器事件而被执行,既可以建立在表上,也可以建立在视图上
5.Insert,Update,Delete:激活触发器的三种操作,可以同时执行,也可以选其一
6.if update(col_name):表明所作的操作对指定的列是否有影响,有影响,则激活触发器。此外,因为delete操作只对行有影响,所以如果使用delete
操作就不能使用这条语句了(虽然使用了也不会出错,但是不能被激活,没有意义)
7.触发器执行时用到两个特殊的临时表:deleted,inserted
deleted,inserted可以说是一种特殊的临时表,是在进行激活触发器时有系统自动生成的,其结构与触发器作用的表结构一致,只是存放的数据有差异
deleted与inserted数据的差异
inserted,只是存放insert和update操作后的数据
deleted存放进行delete和update操作前的数据
update操作相当于先进行了delete再进行insert,所以在进行update操作时,修改前一条数据到deleted表中,修改后的数据保存到触发器作用的表中,同时还要拷贝一条到inserted表中
SQL_触发器的总结