Sql server 在存储过程中处理超时
我有一个存储过程,它执行几个查询。由于超时,每个查询都可能失败 我仍然希望继续执行其他查询。 这可能吗?试捕对超时有效吗 当然,我可以为每个查询使用不同的SP,但这会使应用程序更加复杂。如何运行SQL SQL本身没有超时,所以您所描述的问题是不可能的 超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天 因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。如何运行SQL SQL本身没有超时,所以您所描述的问题是不可能的 超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天Sql server 在存储过程中处理超时,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个存储过程,它执行几个查询。由于超时,每个查询都可能失败 我仍然希望继续执行其他查询。 这可能吗?试捕对超时有效吗 当然,我可以为每个查询使用不同的SP,但这会使应用程序更加复杂。如何运行SQL SQL本身没有超时,所以您所描述的问题是不可能的 超时总是在连接级别/连接应用程序上处理。SQL Server很高兴SQL调用能持续数小时或数天 因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。如何运行SQL SQL本身没有超时,所以您
因此,除非您执行一些“有趣的”/“异常”操作,否则SP中的查询将不会超时-调用过程的连接将超时,从而回滚事务。存储过程中的查询不会超时-执行存储过程的sql批处理将超时-因此,您不能“捕获”然后处理超时。存储过程中的查询没有超时-执行存储过程的sql批处理超时-因此,不,您不能“捕获”然后处理超时。简短回答:不。超时就像在SSMS中取消查询一样:捕获不会捕获它。我写了一个固定的答案:简短的回答:不。超时就像在SSMS中取消查询一样:CATCH不会捕获它。我写了一个固定的答案:如果您经常遇到超时,那么解决方法是对查询进行性能调整,而不是试图跳过超时并转到下一个查询
超时通常是查询设计不好(第1个原因)、数据库设计不好(第2个原因)或设备不足的标志。这三个问题都是可以解决的。因此,请修复它们。如果您经常遇到超时,修复方法是对查询进行性能调整,而不是试图跳过超时并转到下一个查询 超时通常是查询设计不好(第1个原因)、数据库设计不好(第2个原因)或设备不足的标志。这三个问题都是可以解决的。所以,修复它们