Sql server 在存储过程中处理超时

Sql server 在存储过程中处理超时,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个存储过程,它执行几个查询。由于超时,每个查询都可能失败 我仍然希望继续执行其他查询。 这可能吗?试捕对超时有效吗 当然,我可以为每个查询使用不同的SP,但这会使应用程序更加复杂。如何运行SQL SQL本身没有超时,所以您所描述的问题是不可能的 超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天 因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。如何运行SQL SQL本身没有超时,所以您

我有一个存储过程,它执行几个查询。由于超时,每个查询都可能失败

我仍然希望继续执行其他查询。 这可能吗?试捕对超时有效吗

当然,我可以为每个查询使用不同的SP,但这会使应用程序更加复杂。

如何运行SQL

SQL本身没有超时,所以您所描述的问题是不可能的

超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天

因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。

如何运行SQL

SQL本身没有超时,所以您所描述的问题是不可能的

超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天


因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。

存储过程中的查询不会超时-执行存储过程的sql批处理将超时-因此,您不能“捕获”然后处理超时。

存储过程中的查询没有超时-执行存储过程的sql批处理超时-因此,不,您不能“捕获”然后处理超时。

简短回答:不。超时就像在SSMS中取消查询一样:捕获不会捕获它。我写了一个固定的答案:

简短的回答:不。超时就像在SSMS中取消查询一样:CATCH不会捕获它。我写了一个固定的答案:

如果您经常遇到超时,那么解决方法是对查询进行性能调整,而不是试图跳过超时并转到下一个查询


超时通常是查询设计不好(第1个原因)、数据库设计不好(第2个原因)或设备不足的标志。这三个问题都是可以解决的。因此,请修复它们。

如果您经常遇到超时,修复方法是对查询进行性能调整,而不是试图跳过超时并转到下一个查询

超时通常是查询设计不好(第1个原因)、数据库设计不好(第2个原因)或设备不足的标志。这三个问题都是可以解决的。所以,修复它们