是否可以使用SqlTransaction类创建嵌套事务?如果是这样,我需要注意的规则/限制是什么?
发布于 2011-07-06 03:32:07
不幸的是,SQL Server忽略了内部事务的提交,as in this MSDN article.
您可以嵌套事务,但要注意其行为可能不是您所期望的。
在最外层的事务提交之前,不会提交任何内容。
所以,在下面..。
transaction A
Query A
transaction B
Query B
Commit B
Rollback A查询B的结果实际上并未提交到数据库。
发布于 2013-11-03 14:47:03
您可以在SqlTransaction类上使用Save(string savePointName)方法。这将创建一个存储点,您可以在事务内回滚到该存储点。因此,如果部分代码失败,您将回滚到前一个保存点并重新开始。
示例:
SqlTransaction tran = _transaction as SqlTransaction;
tran.Save(savePointName);当你失败的时候,你会这样做:
tran.Rollback(savePointName);您可以根据需要多次执行此操作。这将解决嵌套事务的问题。
https://stackoverflow.com/questions/6587647
复制相似问题