SQL server 的 instead of与 after触发器区别

(注:如果小弟有啥地方理解错误,还请各位大佬指出,以便更正。)

instead of 

如同单词一样,可以理解为代替的意思,当你在一张表上定义了这样的触发器后,如果对表做insert、update、delete操作时触发了所定义的触发器,他就会直接转到触发器去执行触发器里定义的事件,不在执行之前做的insert、update、delete操作了;

例子如下:(往教师表中添加一个instead of 新增操作的触发器,如果触发器生效,则直接执行触发器里面的内容,就不在往教                        师表添加任何数据,而是直接执行学生表添加的操作。)

insert into teacher values(newid(),张三)  

create trigger tgr_XXX_insert
on 表名
     instead of insert --插入触发
as

begin
    insert into Student values(newid(),小白)  

end

 

after

例子如下:(往教师表中添加一个after 新增操作的触发器,如果触发器生效,首先是执行教师表的添加,之后再去执行触发器                          里面的内容,也就是往学生表中添加数据。)

insert into teacher values(newid(),张三)  

create trigger tgr_XXX_insert
on 表名
    after insert --插入触发
as

begin
    insert into Student values(newid(),小白)  

end

他的作用就是当你在一张表上定义了这样的触发器后,如果对表做insert、update、delete操作时触发了所定义的触发器,它并不会直接去执行触发器,而是先操作了你对表的操作后,再去执行触发器定义的事件;

 

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值