触发器的Instead of 与 After

 一.工作流程:

1.Instead of :

SQL Server接到执行SQL语句请求->建立临时的Inserted 表与Deleted表->触发Instead Of触发器->结束。注意:此触发器将代替原来要执行的Insert、Delete 或update操作;

例如:A表有一个关于Instead of Insert 的触发器,向A表插入一行数据时,触发器将要代替“向A表插入一行数据的操作”,至于什么操作,由触发器的内容决定;

2.After:

SQL Server接到执行SQL语句请求->建立临时的Inserted 表与Deleted表->执行SQL语句->触发Instead Of触发器->结束。

二.Instead of 用途

1.多表连接的视图数据更新,可以写相应的Instead of 语句去更新多个表;

2.数据库某些表禁止进行Insert、Delete、Update,则可以写Instead of Insert、Instead of Delete、Instead of Update来屏蔽原来要进行的操作;

三.使用触发器注意事项

1.触发器与表或视图的对应关系:After只可用于基本表,After与instead of 可用于基本表与视图,一个表可以对应多个触发器,一个触发器只可以属于一个表或视图;

2.Instead of 类型的删除、更新、插入操作,各只可出现一次,After类型则不限;

3.一个操作同时存在于Instead of 与After中时,Instead of 的一定会执行,After的则不一定会执行。如果Instead里执行的是非激活类型的操作,则不会执行After里面同种类型的操作。例如:Insert语句同时存在于Instead of 与After中,如果Instead of Insert 里面执行的是非本表的Insert语句操作,那么After Insert 就不会执行了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值