SQL-正在等待回滚完成

本文关键字:在等待 SQL- | 更新日期: 2023-09-27 18:28:29

我正在使用超时300秒的CommittableTransaction删除大量记录。偶尔我会得到一个错误

SqlException:超时已过期。在操作完成或服务器没有响应之前经过的超时时间。

似乎在超时之后,SQL会自动执行回滚,回滚需要大约200秒才能完成。

但我当前的C#代码,捕获SqlException并检查TransactionStatus(即Aborted),然后继续。由于回滚正在进行中,我应该等待回滚完成。有没有办法找到回滚状态?或者我该如何处理这种情况?

SQL-正在等待回滚完成

从这里开始使用CommittableTransaction 实现显式事务

CommittableTransaction对象可以跨函数调用和螺纹。但是,这取决于应用程序开发人员异常,并在故障。

我认为您可以在捕获块中显式调用Transaction.Rollback(Exception)SqlException。所以您等待回滚操作完成。