begin catch 。。。end catch 是用來處理異常的
begintry
--SQL
endtry
begincatch--sql (處理出錯動作)
endcatch
我們將可能會出錯的sql 寫在begin try...endtry 之間,若出錯,剛程序就跳到緊接着的begin try...endtry 的beign catch...endcatch
中,執行beign catch...endcatch錯誤處理SQL。try..catch 是可以嵌套的。
在begin catch ...endcatch中我們可以利用系統提供的下面四個函數得到出錯信息:
error_number 返回錯誤代碼
error_serverity 返回錯誤的嚴重級別
error_state 返回錯誤狀態代碼
error_message 返回完整的錯誤信息
上面的四個函數在同一個begin catch ...endcatch可以在多次使用,值是不變的。
下面是一個簡單的小例子。
begintry
select2/0
endtry
begincatch
selecterror_number()aserror_number ,
error_message()aserror_message,
error_state()aserror_state,
error_severity()aserror_severity
endcatch
結果:
-----
error_number error_message error_state error_severity
8134遇到以零作除數錯誤。116