我们的软件解决方案之一很难找到有时会留下开放交易的错误。我们在许多网站上都有这个应用程序(阅读:70+),我们今年到目前为止在不同地点只看过两次这个问题。
我们遇到的问题是从与SQL Server的常量连接中保持打开的事务。使用dbcc opentran
表示只有一个事务处于打开状态。在今天的情况下,它是在我们在下午1点实现它之前从上午9:30开放的。使用连接关闭程序将导致交易被关闭/取消,并且迄今为止当天的所有数据都将丢失。
使用dbcc opentran
,它以开放交易的名称user_transaction
作为回应。尝试使用commit tran user_transaction
关闭它会产生The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
错误。
我可以理解,如果没有先前连接的知识,你几乎不会强制提交事务,但有没有办法这样做?在这种情况下,我们关闭了该计划,我们失去了一半的业务价值数据。
感谢。
答案 0 :(得分:8)
如果交易可能由另一个事件提交,那么它不是交易。如果这是可能的话,它将为解决更多问题打开大门。
请参阅此链接:http://ask.sqlservercentral.com/questions/3865/forcing-a-transaction-to-commit.html