程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用Try…Catch塊進行T-SQL錯誤處理

使用Try…Catch塊進行T-SQL錯誤處理

編輯:關於SqlServer

SQL Server的錯誤處理或異常處理一直都是T-SQL開發中比較麻煩的部分。在過去,每一條語句運行後,你都要手動地進行錯誤檢查,然後逐個錯誤的進行處理。SQL Server事務管理同樣非常麻煩,你需要找出事務的狀態,然後恰當的將其回滾或者提交。

而今,通過在SQL Server 2005中為T-SQL添加Try…Catch塊,微軟給我們提供了新的,更加健壯的錯誤處理能力。在本文中,我們將看到Try…Catch塊是如何工作的,並告訴你如何你在代碼使用他們。同時,我們還將提供一些使用以前的方法處理問題和使用現代方法處理問題的對比,是你更好的理解如何使用Try…Catch。

Try…Catch的定義

為了理解Try…Catch塊,你必須先明白異常處理的概念。異常處理非常簡單:在執行你的代碼時,那些非計劃之內發生的事情就是異常,你需要做一些事情對它進行處理。至於如何處理異常,則由開發人員,也就是你來決定。

為了是你的T-SQL代碼可以處理異常,你就需要使用Try…Catch塊。如果你使用過Visual Studio,那麼你可能對Try…Catch塊的概念很熟悉。T-SQL中的Try…Catch塊雖然與完全成熟的Visual Studio中的很相似,但實際上它少了一些選項。在使用Try…Catch塊時,將你所編寫的需要運行的T-SQL代碼放入Try塊中。如果在運行這段代碼時,如果一個嚴重級別是10級或者更高的錯誤發生,就會轉到Catch塊中運行那裡面的異常處理代碼。它的基本結構如下所示:

BEGIN TRY

[T-SQL代碼寫在這裡]

END TRY

BEGIN CATCH

[異常處理代碼寫在這裡]

END CATCH

在T-SQL中使用Try…Catch塊時,你需要注意以下這些關鍵問題:

Try塊後面必須要直接接一個Catch塊,否則就會發生一個錯誤。

Try…Catch不能嵌套。

如果Try塊中的代碼沒有故障,將跳過Catch塊,執行Catch塊後的第一條語句。

當Catch塊中的代碼運行完畢後,將執行Catch塊後的第一條語句。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved