我有一個存儲過程執行幾個查詢。由於超時,每個查詢都可能失敗。處理存儲過程中的超時
我還想繼續執行其他查詢。 這可能嗎?試一試超時工作嗎?
我可以offcourse每個查詢具有不同的sps,但這會使應用程序更復雜。
我有一個存儲過程執行幾個查詢。由於超時,每個查詢都可能失敗。處理存儲過程中的超時
我還想繼續執行其他查詢。 這可能嗎?試一試超時工作嗎?
我可以offcourse每個查詢具有不同的sps,但這會使應用程序更復雜。
如何運行SQL?
SQL本身沒有超時,所以你描述的問題是不可能的。
超時總是在連接級別/連接應用程序上處理。 SQL Server很高興能夠持續數小時或數天的SQL調用。
所以,除非你做了一些「有趣」/不尋常的事情,否則SP中的查詢不會超時 - 調用該過程的連接將超時並因此回滾事務。
存儲過程中的查詢不超時 - 正在執行sproc超時的sql批處理 - 所以不行,你不能'捕捉'然後處理超時。
簡答題:沒有。超時就像當你在SSMS中取消你的查詢一樣:CATCH不會捕獲它。我寫了一個罐頭答案:Your TRY block may fail, and your CATCH block may be bypassed
如果您經常收到超時,修復是性能調整查詢不嘗試跳過超時並轉移到下一個查詢。
超時通常是錯誤的查詢設計(數字1原因),數據庫設計不良(數字2原因)或設備不足的標誌。所有三個都是可以修復的。所以修復它們。