溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SqlServer中存儲過程如何捕獲異常

發(fā)布時間:2021-08-13 17:21:51 來源:億速云 閱讀:199 作者:Leah 欄目:數(shù)據(jù)庫

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)SqlServer中存儲過程如何捕獲異常,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  SqlServer中的存儲過程怎么捕獲異常

  1、環(huán)境

  數(shù)據(jù)庫為SqlServer2008。表(Course)結(jié)構(gòu)為:Nochar(10)primarykeyNamevarchar(20)Commentvarchar(50)

  2、存儲過程

  就以插入數(shù)據(jù)為例,其他的可以照著寫就行了。

  編程語言都有異常的捕獲與處理,在SqlServer2008中也是這樣子的。

  對會出現(xiàn)異常的語句加上begintry……endtry,然后進行異常捕捉:begincatch……endcatch即可。

  錯誤代碼詳解很容易就能找到。

  代碼如下:

  Createprocsp_Insert_Course@Nochar(10),@Namevarchar(20),@Commentvarchar(50),@rtnintoutputasbegintryinsertintoCoursevalues(@No,@Name,@Comment)set@rtn=1endtrybegincatchset@rtn=@@ERROR--輔助信息--selectERROR_LINE()asLine,--ERROR_MESSAGE()asmessage1,--ERROR_NUMBER()asnumber,--ERROR_PROCEDURE()asproc1,--ERROR_SEVERITY()asseverity,--ERROR_STATE()asstate1endcatch

  SqlServer中的存儲過程怎么捕獲異常

  3、存儲過程執(zhí)行

  相關(guān)代碼如下:

  declare@rtnintexecsp_Insert_Course'114','語文','',@rtnoutputprint@rtn

  執(zhí)行結(jié)果:

  正常的情況下,返回值為1,

  假如已經(jīng)存在編號為“114”的數(shù)據(jù),就會返回ERROR_CODE:2627,

  其他的異常情況會返回相應(yīng)的代碼

  4、說明

  假如程序有異常,把異常代碼返回,然后再進行相關(guān)的處理即可。

  SQLServer中的異常處理和別的數(shù)據(jù)庫(如Oracle)的有點差異,但是基本思想差不多,在最后捕獲都可以得到異常。

上述就是小編為大家分享的SqlServer中存儲過程如何捕獲異常了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI