为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
芜湖不芜 2023-07-22 18:13:26
假设我有一个 C# 类,它为数据库创建一个事务,然后调用一个存储过程。int = 1如果出现错误,存储过程将返回。假设我们更新了一个表,但随后返回 1,因为 SP 中的某个地方发生了错误。然后,这会在 C# 中引发异常,该异常会调用一个方法来回滚事务,但在该方法的 FINALLY 块中,我们提交事务。由于事务已回滚,那么当我们调用 commit 时会发生什么?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

如果您回滚事务,则该事务中所做的所有更改都会...回滚、取消。所以你在finally块中的提交不会做任何事情,至少当你没有其他事务等待时。

我不会将提交方法放在finally块中,我会在try块末尾提交事务并在catch块中回滚。


查看完整回答
反对 回复 2023-07-22
?
森林海

TA贡献2011条经验 获得超2个赞

我想建议您在存储过程中也使用事务以及 try catch 块。

我已经确认回滚后我们无法提交相同的事务。

确保另一个事务没有处于等待状态,否则它将被提交。

也不要对finally 块中的事务执行任何操作。始终使用finally块来关闭连接、数据读取器等。

始终在 try 块中提交并在 catch 块中回滚。


查看完整回答
反对 回复 2023-07-22
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信