添加異常處理是一種很好的做法,但我有一個疑問,在我們的數據庫中,我們有10個SP,它們被我們的數據訪問層訪問,邏輯不多,查詢也不大。保留SP中的查詢允許將分頁數據輕鬆地傳遞到表示層。所以,我的問題是,如果錯誤處理在這種情況下被添加到SP中,但它們不包含大型複雜查詢?SQl存儲過程中的異常處理?
0
A
回答
2
大多數分頁查詢應該是一個單一的SELECT
陳述,或者兩個,如果你與SET ROWCOUNT
優化/ LIMIT
。我不認爲在這個實例中可能發生的任何錯誤都可以從數據庫中處理。
通常,在數據庫級別實現錯誤處理的主要原因是將其與事務邏輯相結合,以便在必要時在適當的時間回滾正確的更改。如果你實際上沒有執行任何DML,我真的沒有看到編寫特殊錯誤處理代碼的好理由。
當然你還沒有在這裏我們展示的查詢要麼...如果你是寫某種多語句DML在那裏,然後撇開事實,這是一個奇怪的事情在做分頁查詢,你會想要進行某種錯誤處理。與查詢不重要的是大小,而是查詢所做的;如果你正在對數據做修改,那麼你應該考慮實現錯誤處理,但是如果沒有,那麼我沒有看到任何好的理由。
3
是的。
TRY/CATCH將捕獲錯誤,否則會導致存儲的proc運行停止,例如數據類型轉換錯誤。它也可以讓你記錄錯誤在catch塊,例如,或重試(例如已PROC稱自己)
相關問題
- 1. db2存儲過程異常處理
- 2. 異常處理存儲過程
- 3. 存儲過程中的異常管理?
- 4. CLR存儲過程中的全局異常處理程序
- 5. 在執行存儲過程中的異常處理
- 6. 如何處理mysql中的存儲過程異常?
- 7. 處理存儲庫層中的異常
- 8. 如何處理DB倒入等異常在存儲過程中
- 9. SQL存儲過程和錯誤處理
- 10. 程序中的PL/SQL異常處理
- 11. spring&plsql存儲過程 - 異常處理和事務
- 12. No_Data_Found異常處理刪除和更新存儲過程
- 13. 異常處理SQL
- 14. 異常處理/ SQL
- 15. Azure表存儲異常處理
- 16. 使用存儲過程調用存儲過程的異常iBATIS
- 17. 在全局異常處理程序中處理線程異常?
- 18. 處理存儲過程中的超時
- 19. 存儲過程中的錯誤處理
- 20. 存儲過程中的錯誤處理
- 21. 如何解決SQL存儲過程中的Divide by Zero異常?
- 22. 調用另一個存儲過程的存儲過程中的異常流程
- 23. 在彈簧批處理csv的過程中處理異常
- 24. CLR存儲過程線程異常
- 25. c異常處理sql異常#
- 26. 存儲過程的異常在asp.net
- 27. Linq-to-SQL - 調用存儲過程在C#中拋出異常
- 28. SQL Server存儲過程中的錯誤處理
- 29. 處理程序異常PL/SQL
- 30. php:在異常處理程序中處理異常?
我會說你使用每個存儲過程的模板,無論是否進行數據更改。在將來,如果你想在更新過程中重新使用這個選擇過程呢?如果計數/分配溢出選擇中的局部變量會怎麼樣?包含它就像排除它一樣容易,不是嗎? – gbn 2010-03-23 06:39:42
@gbn:也許這只是因爲我鄙視SSMS模板系統(與VS代碼片段相比),但這對我來說似乎是不必要的工作。我們大多數人並沒有在應用程序代碼中所做的每件事情上都癡迷於編寫try-catch塊,所以我不明白爲什麼它只需要一個'SELECT'語句就可以完成,我想不出來任何情況下,我已經在另一個程序中重複使用了「SELECT」過程。我也認爲不太可能發生「報告」程序改變以進行修改;如果發生這種情況,請添加異常處理,很簡單。 – Aaronaught 2010-03-23 14:16:23