假设我有一个C#类,该类为数据库创建事务,然后调用存储过程。如果发生错误,存储过程将返回int = 1。假设我们更新了一个表,然后返回1,因为SP中某个地方发生了错误。

然后,这在c#中引发了异常,该异常调用了一种方法来回滚事务-但是在方法的FINALLY块中,我们提交了事务。

由于事务已回滚,当我们调用commit时会发生什么?

最佳答案

如果您回滚该事务,则在该事务中进行的所有更改都只是...回滚,取消。因此,至少在没有其他事务等待时,您对“ finally”块的提交将不会执行任何操作。

我不会将commit方法放置在finally块中,而是将事务提交到try块的末尾,然后回滚到catch块中。

关于c# - 回滚后提交事务时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57247781/

10-12 17:30
查看更多