SQL异常超时:查询是否完成?

时间:2015-02-20 10:38:40

标签: sql-server stored-procedures

我有一个C#应用程序连接到SQL Server并调用SQL Server数据库上的存储过程并抛出:

  

超时已到期。
  操作完成之前经过的超时时间或服务器没有响应   声明已经终止。

如果存储过程没有问题但运行时间超过超时值,数据库是否会继续运行它或者因为连接结束将导致数据库终止查询?

2 个答案:

答案 0 :(得分:4)

  

如果连接丢失,SQL Server将回滚。 SQL Server依赖   在底层网络堆栈上报告连接丢失,为   如果您使用IP,则实施TCP prototol。如果TCP报告丢失   会话,然后SQL Server将使用.ldf中记录的信息   文件以回滚事务。如果客户端应用程序超时,   然后将一个显式信号发送到数据库引擎,称为   "注意",终止会话,SQL Server将回滚   交易。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2f55a9fe-b47f-4dfb-8aa6-0e25331a0989/transaction-rollback-on-connection-failure-or-timeout

答案 1 :(得分:0)

您的超时将由客户端管理,在这种情况下可能是ADO.NET(或其他)。

n秒后,客户端向服务器发送取消消息,服务器取消查询。