即使事务是嵌套的,也只有在最外面的事务提交之后才会更新。那么嵌套事务的含义是什么?需要该特性的具体情况是什么?
答案 0 :(得分:2)
参见链接
http://msdn.microsoft.com/en-us/library/ms189336.aspx
http://www.codeproject.com/KB/database/sqlservertransactions.aspx
答案 1 :(得分:2)
例如假设这样的情况:
Class A
{
/// props
save();
}
class B
{
A a{get;set};
// other props
save();
}
现在当你想要保存B时,首先保存A
假设在保存A你有一些服务要求进行验证等等,这种情况在保存B(一些验证)所以你需要回滚{{{ 1}}无法验证,你也应该回滚当你无法验证A所以你应该嵌套一个(实际上Separation of concern因此,你可以混合所有的东西,并有一个没有嵌套事务的意大利面条代码)。
答案 2 :(得分:1)
没有任何东西叫做嵌套交易。
SQL考虑的唯一事务是最外层的事务。这是承诺或回滚的那个。嵌套事务在语法上是有效的,这就是全部。假设您从事务内部调用过程,并且该过程本身具有事务,语法允许您嵌套事务,但是唯一有效的事务是最外层事务。