什么情况下需要嵌套事务?
即使一个事务是嵌套的,它也不会被更新,直到最外面的事务提交。那么嵌套事务的含义是什么以及需要该功能的具体情况是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
即使一个事务是嵌套的,它也不会被更新,直到最外面的事务提交。那么嵌套事务的含义是什么以及需要该功能的具体情况是什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
例如假设这样的情况:
现在当你想保存B时,你首先保存
A
假设在保存A时你有一些服务调用进行验证等,保存B时的情况(一些验证)因此,如果B
无法验证,则需要回滚,当无法验证 A 时,也应该回滚,因此您应该嵌套一个(实际上 关注点分离 因此,您可以混合所有内容并拥有意大利面条式代码,而无需嵌套事务)。for example assume such a situation:
now when you want to save B, you first save
A
assume in saving A you have some service calls for verification or etc, such a situation in saving B (some verifications) so you need rollback ifB
can not verified, also you should to rollback when you can't verify A so you should have nested one (in fact Separation of concern cause to this, you can mix all things and have a spaghetti code without nested transaction).没有什么叫做嵌套事务。
SQL 考虑的唯一事务是最外层事务。这是已提交或已回滚的。嵌套事务在语法上是有效的,仅此而已。假设您从事务内部调用一个过程,并且该过程本身具有事务,则语法允许您嵌套事务,但唯一有效的是最外层的事务。
编辑:参考此处:http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(2630)-nested-transactions-are-real.aspx< /a>
There is nothing called Nested Transactions.
The only transaction that SQL considers, is the outermost one. It's the one that's committed or is rolled back. Nested Transactions are syntactically valid, that's all. Suppose you call a procedure from inside a transaction, and that procedure has transactions itself, the syntax allows you to nest transactions, however the only one that has any effect is the outermost.
edit: Reference here : http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(2630)-nested-transactions-are-real.aspx