作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
能否在一个存储过程中启动一项事务,然后在嵌套过程中回滚或提交它?
最佳答案
提交和回滚有不同的效果
发生这种情况是因为 SQL Server 并不真正支持嵌套事务。
如果您在嵌套存储过程(不是事务)中提交或回滚,那么您将生成错误 266,因为启动和条目上的 @@TRANCOUNT 不匹配
回滚问题可以通过使用 SET XACT_ABORT ON 来解决,这是“自动回滚”(简单地)并抑制错误 266。
提交问题...你不能这样。但是,您可以通过在存储过程条目上注明 @@TRANCOUNT 并仅在零时提交来控制发生的位置。
为了正确处理交易,请在此处查看我的答案: Nested stored procedures containing TRY CATCH ROLLBACK pattern?和 Have I to count transactions before rollback one in catch block in T-SQL?
关于sql-server - 如何在多个存储过程上使用事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4783793/
我是一名优秀的程序员,十分优秀!