我有一个调用webservice方法的Winforms应用程序
webservice方法启动一个长时间运行的事务(不幸的是,有很多小命令,而不是一个长命令。)
据我所知,如果webservice调用超时,webservice方法中的事务将继续运行并完成。我希望发生的事情是当webservice超时时事务回滚。这可能吗?
答案 0 :(得分:0)
恢复旧线程,但我遇到了同样的问题,所以我想我会为遇到它的其他人更新这个问题。我发现的最佳解决方案是使用XACT_ABORT即插入
SET XACT_ABORT ON
在您的交易开始时。这将强制回滚任何类型的客户端错误(因此您的事务将不会继续运行和完成,它将只是回滚)。在dba stackexchange中有一个非常好的讨论:
https://dba.stackexchange.com/questions/10912/sql-server-transaction-timeout