c# - 回滚后提交事务会发生什么?

标签 c# sql-server tsql

假设我有一个 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/

相关文章:

c# - 如何存储 ASP.NET CommandName 和 CommandArgument 值?

c# - 在 Xamarin 中使用 HtmlAgilityPack 等待 AJAX

mysql - 将两列相乘为第三列,其中一列是sql中的count(*)

sql-server - 使用声明和设置变量创建存储过程

tsql - 使用 "UNION ALL"和 "GROUP BY"实现 "Intersect"

sql - 查询显示表之间不匹配的记录

c# - lock 语句中还需要 volatile 吗?

sql-server - 如何查看表插入的历史记录?

sql-server-2008 - NVarChar 变量比较

c# - 保存实时图表图像