Oracle、SQLServer触发器对比

本文对比了Oracle和SQLServer中的触发器特性,强调了触发器编程规范,如避免触发器递归、使用后置触发器等。同时,讨论了触发器中的数据载体、事务控制、异常处理和触发事件判断等方面,展示了如何在Oracle中解决行级触发器的查询限制以及SQLServer中的事务处理和异常捕获机制。
摘要由CSDN通过智能技术生成

触发器编程规范:

​ 1.非特殊情况不在触发器中查询

​ 2.创建触发器使用DML类,对insert、delete、update语句进行响应

​ 3.创建触发器使用After后置类型触发器

​ 4.原则上使用语句级别触发器,SQL server无行级触发器

​ 5.应避免和杜绝触发器递归:

​ 1.触发器中向本表insert、delete、update

​ 2.触发器中向已经创建过触发器的表insert、delete、update

​ 6.触发器中进行必要的异常捕获和处理,触发器中的错误会导致数据操作整体回滚影响系统业务

​ 7.如需要事务控制,应使用显式的事务控制语句

触发器特征

1.如果触发器中发生错误则主表数据不会发生变更(insert、delete、update)

2.触发器中操作其他数据库、表发生错误则主表、被操作表数据都不会变更

3.触发器中操作多张表,如果有任意操作出错则整体回滚

4.SqlServer、Oracle可在触发器中通过Commit、Commit Tran、rollback tran或rollback 语句控制事务

after insert trigger

1.同一个服务器中的两个数据库,A库t1表 after insert 触发器中向 B库 t2表 insert 数据:

1.如果向t2表中插入失败,则直接影响 A库t1表的插入,A库t1表也无法插入。【事务一致】

2.触发器执行发生错误影响 insert 命令也无法成功写入数据

after

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值