Vam*_*msi 6 t-sql sql-server triggers sql-server-2008
INSERT AFTER或UPDATE AFTER触发器内的回滚是回滚整个事务还是仅作为触发原因的当前行,是否与Commit相同?
我试图通过我当前使用MSTDC进行交易的项目代码来检查它,看起来好像完整的交易中止了.
如果触发器中的回滚确实回滚整个事务,是否有一种解决方法可以将其限制为仅当前行.
我在这上面找到了sybase的链接,但在sql server上没有
RB.*_*RB. 8
是的,它将回滚整个交易.
这些都在文档中(参见备注).请注意我强调的评论 - 我会说这非常重要!
如果在触发器中发出ROLLBACK TRANSACTION: 对当前事务中对该点所做的所有数据修改都将被回滚,包括触发器所做的任何修改. 触发器继续执行 ROLLBACK语句之后的任何剩余语句.如果这些语句中的任何一个修改数据,则不会回滚修改.执行这些剩余的语句不会触发嵌套触发器. 触发触发器的语句后批处理中的语句不会执行.
如果在触发器中发出ROLLBACK TRANSACTION:
对当前事务中对该点所做的所有数据修改都将被回滚,包括触发器所做的任何修改.
触发器继续执行 ROLLBACK语句之后的任何剩余语句.如果这些语句中的任何一个修改数据,则不会回滚修改.执行这些剩余的语句不会触发嵌套触发器.
触发触发器的语句后批处理中的语句不会执行.
归档时间:
13 年,1 月 前
查看次数:
17606 次
最近记录:
9 年,7 月 前