假设我有一个 C# 类,它为数据库创建一个事务,然后调用一个存储过程。如果出现错误,存储过程返回 int = 1
。假设我们更新了一个表,但随后由于 SP 某处发生错误而返回 1。
然后这会在 c# 中引发异常,它调用一个方法来回滚事务 — 但在该方法的 FINALLY block 中,我们提交了事务。
既然事务被回滚了,那么当我们调用 commit 时会发生什么?
最佳答案
如果您回滚事务,那么在该事务中所做的所有更改都只是……回滚、取消。所以你在 finally block 中的提交不会做任何事情,至少当你没有其他事务等待时。
我不会将提交方法放在 finally block 中,我会在 try block 末尾提交事务并在 catch block 中回滚。
关于c# - 回滚后提交事务会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57247781/