4

即使一个事务是嵌套的,在最外层事务提交之前它也不会被更新。那么嵌套事务是什么意思,具体情况是什么需要这个特性呢?

4

2 回答 2

2

例如假设这样一种情况:

Class A
{
 /// props
 save();
}

class B
{
  A a{get;set};
  // other props
  save();
}

现在当你想保存B时,你首先保存A假设在保存A时你有一些服务调用进行验证等,保存B的这种情况(一些验证)所以如果B无法验证你需要回滚,你也应该回滚时您无法验证 A,因此您应该嵌套一个(实际上关注点分离导致了这一点,您可以混合所有东西并拥有一个没有嵌套事务的意大利面条代码)。

于 2011-09-24T08:39:14.530 回答
0

没有什么叫做嵌套事务。

SQL 考虑的唯一事务是最外层的事务。它是已提交或已回滚的。嵌套事务在语法上是有效的,仅此而已。假设您从事务内部调用一个过程,并且该过程本身具有事务,则语法允许您嵌套事务,但是唯一有效的是最外层。

编辑:参考这里:http ://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(2630)-nested-transactions-are-real.aspx

于 2011-09-24T08:41:37.790 回答