如果客户端建立事务,锁定行或表,并且客户端进程在有机会回滚或提交事务之前崩溃,会发生什么?SQL Server 对事务做了什么(如果有的话)?
- SQL Server 是否有心跳机制来检测套接字被杀死?
- 在检测到套接字被杀死后,SQL Server 是否会自动回滚事务?或者行/表锁是否持续存在(导致其他客户端死锁)?
请提供权威来源来支持您的答案。
更新:客户端进程正在崩溃。我不是在谈论调用KILL命令的人。
如果客户端建立事务,锁定行或表,并且客户端进程在有机会回滚或提交事务之前崩溃,会发生什么?SQL Server 对事务做了什么(如果有的话)?
请提供权威来源来支持您的答案。
更新:客户端进程正在崩溃。我不是在谈论调用KILL命令的人。
会话连同附加的 spid 将被终止/回滚。
https://stackoverflow.com/questions/3978227/how-to-kill-or-rollback-active-transaction
https://technet.microsoft.com/en-us/library/ms173730%28v=sql.110%29.aspx
编辑:
从我所见,这不是数据库问题...但是您是否有可以发布的错误消息以进行澄清?
另请参阅事务处理期间的错误
你可以像这样测试这个:
话虽如此,我已经看到用户关闭浏览器的 SSRS 报告案例,但选择查询在数据源上持续运行数小时。