一、存儲過程使用 try......catch異常處理
TRY 塊以 BEGIN TRY 語句開頭,以 END TRY 語句結尾。在 BEGIN TRY 和 END TRY 語句之間可以指定一個或多個 Transact-SQL 語句。
CATCH 塊必須緊跟 TRY 塊。
CATCH 塊以 BEGIN CATCH 語句開頭,以 END CATCH 語句結尾。
在 Transact-SQL 中,每個 TRY 塊僅與一個 CATCH 塊相關聯。
二、TRY……CATCH基本語法如下
BEGIN TRY
RAISERROR ('Houston, we have a problem', 16,1)
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() as ERROR_NUMBER, //返回錯誤號。
ERROR_SEVERITY() as ERROR_SEVERITY, //返回錯誤嚴重性。
ERROR_STATE() as ERROR_STATE, //返回錯誤狀態號。
ERROR_MESSAGE() as ERROR_MESSAGE //返回錯誤消息的完整文本。此文本包括為任何可替換參數(如長度、對象名稱或時間)提供的值。
ERROR_LINE() as ERROR_LINE, //返回導致錯誤的例程中的行號。
ERROR_PROCEDURE() as ERROR_PROCEDURE, //返回出現錯誤的存儲過程或觸發器的名稱。
END CATCH