SP调用后,如果连接断开,MSSQL怎么办?

时间:2019-04-16 15:07:21

标签: c# sql-server networking vb6

我有一个通过WLAN安装在移动设备上的软件。 目前,交易已通过代码打开和关闭。在业务逻辑之间正在发生。 现在,我正遭受失去连接并在数据库上保持开放交易的痛苦。 (MSSQL 2012)

我的解决方案是将所有事务/逻辑移至sp。

因此客户端仅调用sp,并且事务在内部处理。

我的问题是: 连接丢失后会发生什么情况?它运行到最后吗?

1 个答案:

答案 0 :(得分:1)

文档Controlling Transactions (Database Engine)(尤其是交易处理期间的错误”部分中的

)对此进行了介绍:
  

如果错误阻止事务成功完成,则使用SQL   服务器自动回滚事务并释放所有事务   交易持有的资源。 如果客户端的网络连接   到数据库引擎实例损坏,任何未完成   网络时回滚连接的事务   通知中断实例。如果客户端应用程序失败或   如果客户端计算机关闭或重新启动,这也会中断   连接,并且数据库引擎的实例回滚任何   当网络通知中断时,显示未完成的连接。如果   客户注销该应用程序,任何未完成的交易   回滚。

我已经强调了相关部分。

因此,如果连接断开,将事务移至SP不会阻止事务回滚。我建议找出为什么您的连接不稳定并进行修复。否则,您将需要找到一种在实例上本地运行查询的方法(也许使用SQL Agent)。