我从我的ASP.NET应用程序执行几个SQL事务。一个事务一个接一个地执行几个存储过程。交易是相当长的运行。如何在一个回滚的SqlTransaction实例中重新执行所有的命令?
当我的应用程序的两个实例即两个不同的进程连接到一个数据库时,我有时会遇到SQL死锁问题。在这种情况下,SQL Server会自动回退任何一个进程的事务。
发生这种情况时,我想执行回滚的SqlTransaction
中的所有命令(存储过程)。
如何在C#中执行此操作?
是否有简单的方法来重新执行SQL事务中由SQL服务器回滚事务之前执行的所有命令?
还是我必须编写自己的逻辑来“记住”(并在需要时再次执行它们)我执行的所有存储过程?
你必须在用户代码重试。所以你最后关于“自己的逻辑”的陈述是正确的。 –