我从ASP.NET应用程序执行多个SQL事务。一个事务一个接一个地执行几个存储过程。交易是非常漫长的。
当我的应用程序的两个实例,即两个不同的进程连接到一个数据库时,我有时会遇到SQL死锁问题。在这种情况下,SQL Server会自动从任何一个进程回滚事务。
发生这种情况时,我想执行已回滚的SqlTransaction
中的所有命令(存储过程)。
我怎样才能在C#中做到这一点?
是否有简单的方法可以重新执行SQL事务中所有在SQL服务器回滚事务之前执行的命令?
或者我是否必须编写自己的逻辑来“记住”(并在需要时再次执行它们)我执行的所有存储过程?
答案 0 :(得分:1)
实际上这是一个不好的做法,因为作为一个开发人员,你需要找到回滚的问题并修复,即使如此我会说声明一个int的标志并在每次sp执行时增加它,当出现问题时抓住你写过回滚的部分只是根据标志调用sps。 这样做是错误的做法