午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > SQL Server異常代碼處理的深入講解

SQL Server異常代碼處理的深入講解

熱門標簽:外呼系統會封嗎 在電子版地圖標注要收費嗎 南京電銷外呼系統哪家好 武漢AI電銷機器人 電銷機器人 深圳 實體店地圖標注怎么標 股票配資電銷機器人 萬利達綜合醫院地圖標注點 地圖標注如何弄全套標

前言

SQL Server使用TRY...CATCH 結構實現TSQL語句的錯誤處理,TRY命令負責監控語句執行的情況,如果有TSQL語句發生異常,并且嚴重級別(Severity Level)大于10,并且小于20,那么CATCH命令會捕獲到異常的錯誤。

BEGIN TRY 
   { sql_statement | statement_block } 
END TRY 
BEGIN CATCH 
   [ { sql_statement | statement_block } ] 
END CATCH

數據庫開發工程師需要把一條或多條語句寫入到TRY代碼塊中,如果TRY代碼塊中的代碼在執行過程中發生錯誤,那么在錯誤發生的點之后的代碼不再執行,程序的控制權轉移到CATCH代碼塊塊中。如果TRY代碼塊沒有發生錯誤,那么不會執行CATCH代碼塊,程序的控制權轉移到END CATCH之后的語句。

注意,在CATCH代碼塊中捕獲的異常不會返回給調用程序,如果需要把錯誤消息返回給調用程序,需要在CATCH代碼塊中使用THROW(或RAISERROR,不推薦使用)命令顯式拋出錯誤。

一,獲取異常消息

在TSQL中,使用TRY和 CATCH編寫異常處理代碼塊,在CATCH子句中,使用以下函數,能夠獲取異常發生時的信息。

--返回發生錯誤的代碼行號(LineNumber)
ERROR_LINE ( ) 
--返回錯誤號(ErrorNumber)
ERROR_NUMBER ( ) 
@@ERROR 
--返回錯誤消息(ErrorMessage)
ERROR_MESSAGE ( ) 
--返回發生錯誤的SP Name
ERROR_PROCEDURE ( ) 
--返回錯誤的嚴重度(Error Severity)
ERROR_SEVERITY ( ) 
--返回錯誤的狀態(Error State)
ERROR_STATE()

SQL Server拋出的一個錯誤,通常包括錯誤代碼(Error Number)、嚴重級別(Severity Level)、錯誤狀態(Error State)和錯誤消息(Error Message)等信息。

1,錯誤代碼

錯誤代碼,可以由變量@@ERROR 和函數ERROR_NUMBER()獲得,用于返回上一條語句的錯誤代碼,該代碼唯一標識該錯誤。

2,錯誤的嚴重級別

錯誤的嚴重程序(Severity Level)共有24個級別,表明SQL Sever遇到問題的類型,Severity Level是一個int類型,可以由函數ERROR_SEVERITY() 返回,數值越大,說明問題越嚴重。

按照錯誤對系統的影響程序,把嚴重級別分為四組:

  • 0-10:信息,可以認為是warning
  • 11-16:錯誤,是用戶代碼導致的
  • 17-19:非常嚴重的錯誤,只能由系統管理員來修復
  • 20-24:致命的錯誤,可能導致整個系統無法正常使用

從17-19,錯誤不能被用戶修正,只能由系統管理員來修復問題。

從20-24,這個級別的錯誤遇到的情況比較少,一旦遇到,那么基本上表明整個數據庫系統遇到了非常嚴重的錯誤:

3,錯誤狀態

錯誤狀態(Error State)是用戶自定義的編碼,用于使開發者能夠輕易識別引起異常的確切位置。

4,錯誤消息

錯誤消息,是關于錯誤的描述性文本,可以是SQL Server系統預定義的錯誤信息,也可以是THROW命令拋出的用戶自定義的文本。

二,拋出異常消息

在SQL Server 2012及之后的版本中,使用 Throw 關鍵字代替RAISERROR,用于拋出異常,并將執行控制權轉移到Catch 代碼塊。

THROW [error_number, error_message, error_state];

參數注釋:

  • error_number:錯誤代碼,是一個int類型,數值必須大于5000,小于 2147483647,這是用戶自定義的錯誤代碼。
  • error_message:錯誤消息,類型是nvarchar(2048)
  • state:跟錯誤相關聯的一個state,類型是tinyint,取值范圍是:0-255

注意:在THROW語句之前的語句,必須以分號; 結尾。

當THROW語句用于拋出自定義的異常時,severty level 常常被設置為默認的16;當THROW用于re-throw,此時THROW 沒有任何參數,處于CATCH代碼塊中,僅僅用于把CATCH捕獲的異常重新拋出,severty level,state,錯誤消息跟原始異常相同。

例子1,拋出自定義的異常:

BEGIN TRY 
  SELECT 1/0
END TRY 
BEGIN CATCH 
  ;THROW 51000, 'Divide by zero error encountered', 1;  
END CATCH;

SQL Server拋出的異常消息是,自定義的錯誤代碼是51000,嚴重級別(Severity Level)是16,錯誤狀態是1,錯誤行是5:

Msg 51000, Level 16, State 1, Line 5
Divide by zero error encountered

例子2,重拋異常,把系統檢測到的錯誤從Catch代碼塊中拋出:

BEGIN TRY 
  SELECT 1/0
END TRY 
BEGIN CATCH 
  ;THROW;  
END CATCH;

SQL Server拋出的異常消息是,錯誤代碼是8134,嚴重級別(Severity Level)是16,錯誤狀態是1,錯誤行是2:

Msg 8134, Level 16, State 1, Line 2
Divide by zero error encountered.

三,不受TRY...CATCH結構影響的錯誤

TRY...CATCH 只捕獲嚴重級別從11到19的錯誤,不會捕獲嚴重級別是1-10,20-24的錯誤。

如果session會系統管理員使用KILL命令殺掉,那么TRY...CATCH結構不會捕獲。

四,在事務中處理異常

如果在TRY代碼塊生成的錯誤,導致當前事務的狀態變成無效,那么該事務就是不可提交的事務(uncommittable transaction)。一個不可提交的事務,只能執行read操作,或者回滾(ROLLBACK TRANSACTION),不能執行TSQL語句來執行寫操作,該事務也不能提交。函數XACT_STATE() 返回-1表示,當前的事務是不可提交的事務;返回1表示當前的事務是可以提交的。數據庫開發人員需要通過XACT_STATE() 來對事務執行提交或回滾的操作。

例如,在事務中處理異常,可以參考以下代碼,在實際應用程序,可以把異常信息記錄在數據表中,便于進行故障排除:

-- SET XACT_ABORT ON will render the transaction uncommittable when the constraint violation occurs.
SET XACT_ABORT ON; 
 
BEGIN TRY 
  BEGIN TRANSACTION; 
    -- A FOREIGN KEY constraint exists on this table. This statement will generate a constraint violation error.
    DELETE FROM Production.Product 
    WHERE ProductID = 980; 
  -- If the delete operation succeeds, commit the transaction. The CATCH block will not execute.
  COMMIT TRANSACTION; 
END TRY 
BEGIN CATCH 
  -- Test XACT_STATE for 0, 1, or -1. 
  -- If 1, the transaction is committable. 
  -- If -1, the transaction is uncommittable and should be rolled back.
  -- XACT_STATE = 0 means there is no transaction and a commit or rollback operation would generate an error.
 
  -- Test whether the transaction is uncommittable.
  IF (XACT_STATE()) = -1 
  BEGIN 
    --Logging Exception info, as the transaction is in an uncommittable state. Rolling back transaction.
    SELECT 
      ERROR_NUMBER() AS ErrorNumber, 
      ERROR_SEVERITY() AS ErrorSeverity, 
      ERROR_STATE() AS ErrorState, 
      ERROR_PROCEDURE() AS ErrorProcedure, 
      ERROR_LINE() AS ErrorLine, 
      ERROR_MESSAGE() AS ErrorMessage;  
    ROLLBACK TRANSACTION; 
  END; 
  -- Test whether the transaction is active and valid. 
  IF (XACT_STATE()) = 1 
  BEGIN 
    --'The transaction is committable. Committing transaction.' 
    COMMIT TRANSACTION;   
  END; 
END CATCH;

總結

到此這篇關于SQL Server異常代碼處理的文章就介紹到這了,更多相關SQLServer異常代碼處理內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SQL Server出現System.OutOfMemoryException異常的解決方法
  • 解決SQL SERVER數據庫備份時出現“操作系統錯誤5(拒絕訪問)。BACKUP DATABASE 正在異常終止。”錯誤的解決辦法
  • SQL Server自定義異常raiserror使用示例
  • SQLServer 連接異常與解決方法小結
  • SQLserver2000 企業版 出現"進程51發生了嚴重的異常"錯誤的處理方法
  • SQL Server 2005 中使用 Try Catch 處理異常
  • SqlServer異常處理常用步驟

標簽:武威 安徽 泰安 臺州 濟源 廣東 濟寧 汕頭

巨人網絡通訊聲明:本文標題《SQL Server異常代碼處理的深入講解》,本文關鍵詞  SQL,Server,異常,代碼,處理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server異常代碼處理的深入講解》相關的同類信息!
  • 本頁收集關于SQL Server異常代碼處理的深入講解的相關信息資訊供網民參考!
  • 推薦文章
    99精品视频免费在线观看| xxww在线观看| 欧美高清性hdvideosex| 国产精品免费观看久久| 日韩电影大全免费观看2023年上| 国产主播第一页| 国产不卡一区二区在线观看| 精品久久久免费| 国产无码精品视频| 欧美污视频久久久| 日本丰满少妇做爰爽爽| 日本一区视频在线| 日韩一区二区在线观看视频| 国产精品爽爽久久| 精品www久久久久奶水| 欧美www在线| 成人国产视频在线观看| 巨乳女教师的诱惑| 啪一啪鲁一鲁2019在线视频| 中文字幕亚洲一区二区av在线| 日本亚洲欧美在线| 欧美精品久久久久久久久久久| 国产一区二区三区直播精品电影 | 久久人妻免费视频| 日韩视频免费播放| 97国产成人精品视频| 动漫精品一区二区| 久久久www| 无码人妻丰满熟妇区毛片蜜桃精品| 欧美一级淫片丝袜脚交| 激情综合网五月婷婷| 日本黄色a视频| 欧美成人精品不卡视频在线观看| 亚洲欧美电影一区二区| 亚洲精品国偷拍自产在线观看蜜桃| 久久综合桃花网| 国产一区二区久久久| 亚洲欧洲日产国产网站| 99久久国产综合精品麻豆| 国产一级一片免费播放| 国产一区视频免费观看| 亚洲淫片在线视频| 中文字幕视频一区二区在线有码| |精品福利一区二区三区| 殴美一级特黄aaaaaa| 妖精视频在线观看免费| 欧美激情网站在线观看| 色婷婷久久一区二区三区麻豆| 日本高清视频免费观看| 我要看黄色一级片| 日韩av卡一卡二| 欧美三级电影精品| 蜜桃一区二区三区在线| 国产精品1234区| 成人在线观看a| 久久久精品有限公司| 欧美大片va欧美在线播放| 欧美日韩一区二区欧美激情| 韩国欧美国产一区| 国产成人精品777777| 艳妇乳肉豪妇荡乳xxx| 97视频久久久| 91精品在线观看视频| 色偷偷噜噜噜亚洲男人的天堂| 欧美日韩国产影院| 久久伊99综合婷婷久久伊| 五月天婷婷激情网| 亚洲欧美小视频| 美女被艹视频网站| 免费观看日韩毛片| 99精品一级欧美片免费播放| 国产欧美欧洲在线观看| 成年人精品视频| 日韩美女av在线| 日韩欧美aⅴ综合网站发布| 久久久国产综合精品女国产盗摄| 日本视频中文字幕一区二区三区| 免费黄色小视频在线观看| 99精品中文字幕| av在线天堂网| 免费精品99久久国产综合精品应用| 视频一区不卡| 久久久久无码国产精品一区| 国产日韩欧美影视| 久久久中精品2020中文| 欧美精品在线极品| 亚洲欧美日韩高清| 精品久久久久久久久久久久久久久 | 成人无码一区二区三区| 国产毛片一区二区三区va在线| 日韩一区二区视频在线| 日本少妇毛茸茸高潮| 神马午夜精品91| 免费福利视频网站| 久久久久久久毛片| 一起草在线视频| 极品白嫩的小少妇| 久久久久国产一区| 午夜免费高清视频| 婷婷激情四射五月天| 99在线免费视频观看| 国产激情片在线观看| 亚洲国产日韩美| 麻豆蜜桃91| 日韩欧美在线电影| 欧美一级免费在线观看| 国产精品69久久久| 日本a在线天堂| 国内精品视频一区二区三区| 黄色av免费在线播放| 无码aⅴ精品一区二区三区浪潮| 最近中文字幕免费mv| 正在播放亚洲| 国产免费黄色av| 色国产在线视频| 天天摸天天舔天天操| 中文字幕中文在线| 成人网站免费观看| 亚洲av熟女国产一区二区性色| 永久av免费网站| 国产精品999在线观看| 96日本xxxxxⅹxxx17| 老牛嫩草一区二区三区日本| 国产宾馆实践打屁股91| 国产麻豆日韩欧美久久| www一区二区| 性感美女极品91精品| 欧美精品粉嫩高潮一区二区| 日韩午夜在线观看视频| 久色乳综合思思在线视频| 国产精品美女免费视频| 国产超碰91| 日b视频免费观看| www.欧美日本| 中国美女黄色一级片| 最近中文字幕在线免费观看| 日韩av电影一区| 白白色 亚洲乱淫| 中文字幕精品一区二区三区精品| 色94色欧美sute亚洲线路一ni| 亚洲精品98久久久久久中文字幕| 视频在线一区二区| 亚洲专区国产精品| 致1999电视剧免费观看策驰影院| 高潮一区二区三区| 久久97人妻无码一区二区三区| 亚洲一区中文字幕在线| 成人一区二区视频| 一本色道久久综合狠狠躁的推荐| www国产精品视频| 国产精品yjizz| 日韩a在线播放| 综合五月激情网| 九色综合狠狠综合久久| www.亚洲激情.com| 国产一区二区三区精品视频| 欧美色图校园春色| 明星裸体视频一区二区| 久久久久久久久久久视频| 欧美激情亚洲综合| 中文字幕精品一区二区精品绿巨人| 在线视频中文亚洲| 大地资源第二页在线观看高清版| 激情无码人妻又粗又大| 成人18视频在线播放| 亚洲美女www午夜| 日韩欧美亚洲日产国产| 免费在线黄色网| 国产亚洲精品aa| 日韩在线观看视频免费| 中文字幕人成一区| 欧美成人精品欧美一级乱黄| 欧美激情一区二区三区| 欧美黑人xxx| 九九视频精品在线观看| 国产夫妻性生活视频| 欧美写真视频网站| 国产伦精品一区二区三区四区免费 | 高清免费日韩| 无码h肉动漫在线观看| 国产成人一区在线| 在线观看中文字幕亚洲| 国产一二三在线视频| 国产精品九九九九| 欧美日本一区二区| 亚洲蜜桃在线| 中文字幕人妻丝袜乱一区三区 | 国产男男gay体育生白袜| 欧美特级www| 精品一区二区视频| a v视频在线观看| 欧美日韩加勒比精品一区| 97中文在线| 久久久国产精品黄毛片| 一区二区三区影院| 91视频婷婷| 西西44rtwww国产精品| 欧美午夜久久久| 欧美久久久久久久久久久| 首页亚洲欧美制服丝腿| 永久555www成人免费| www.五月天色| 26uuu国产电影一区二区| 国产精品麻豆va在线播放| 国产真实乱在线更新| 欧美日韩精品在线视频| 亚洲va韩国va欧美va精四季| www.黄色小说.com| www国产91| av免费播放网站| 日韩欧美成人精品| 91黄色在线看| 国产一区二区三区日韩| 91大神在线播放精品| 搜索黄色一级片| 91精品在线免费| www日韩在线观看| 26uuu色噜噜精品一区二区| av一区二区三区免费| 中文字幕人成人乱码亚洲电影| 精品一区精品二区| 星空大象在线观看免费播放| 一区二区三区不卡视频在线观看| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲高清视频网站| 久久免费视频网站| 欧美在线观看不卡| 亚洲网址你懂得| 欧美性生给视频| 欧美不卡在线视频| 丰满熟女人妻一区二区三区| 亚洲一区在线看| 欧美大片在线播放| 欧美激情一区不卡| 天堂v在线视频| 成人丝袜视频网| 欧美二区三区| 国产精品一区二区在线播放 | 无码专区aaaaaa免费视频| 91小视频在线| 亚洲激情电影在线| 97精品视频在线观看自产线路二| 欧美一区少妇| 国产成人在线视频免费播放| 欧美高清视频一区| 国产1区2区3区精品美女| 国产有码在线观看| 日日骚一区二区三区| 成人网在线播放| 777国产偷窥盗摄精品视频| 人妻精品久久久久中文| 日韩精品在线观看一区| mm1313亚洲国产精品无码试看| 久久色视频免费观看| 国产精品免费一区二区三区四区| 国产精品50页| 欧美大片日本大片免费观看| 成人在线免费观看av| 国产精品欧美一级免费| 精品日韩在线播放| 99久久综合精品| 欧美精品一区二区视频| 奇米影视一区二区三区小说| 97se亚洲综合在线| 免费国产精品视频| 亚洲精品免费网站| av无码精品一区二区三区宅噜噜| 色婷婷av一区二区三区在线观看| 免费在线观看一级片| 一区二区欧美激情| 国产精品白嫩白嫩大学美女| 在线亚洲国产精品网| 亚洲 欧美 国产 另类| 日韩精品一区二区三区四区视频| 亚洲综合20p| 亚洲成人免费视频| 4438x全国最大成人| 精品久久久久久久久久久久久久久久久| 久久久精品成人| 中文字幕av一区二区| 自拍偷拍福利视频| 成人精品福利视频| 久久精品国产精品亚洲综合| 在线国产精品网| 亚洲午夜激情av| 天美一区二区三区| 欧美在线一区二区| 三级在线观看免费大全| 国产一区二区三区在线看| 国产精品51麻豆cm传媒| 超碰97人人人人人蜜桃| 97精品久久久午夜一区二区三区 | 欧美xxxx18性欧美| 风流老熟女一区二区三区| 国产精品白丝jk白祙| 国产天堂亚洲国产碰碰| 午夜剧场高清版免费观看 | 中文字幕视频在线播放| 国产色综合一区二区三区| 成人app下载| 成人免费视频久久| 精品国产凹凸成av人网站| 在线观看国产黄| 国产日韩欧美另类| 久久伊99综合婷婷久久伊| 国产精品久久久久久久av福利| 日韩手机在线导航| 在线视频1卡二卡三卡| 日韩偷拍一区二区| 一区二区三区四区视频精品免费| 国产伦理在线观看| 欧美激情第1页| 99久久99久久久精品齐齐| 欧美日韩在线成人| 欧美久久高跟鞋激| 一级一片免费看| 亚洲三区四区| 91麻豆精品国产91久久久使用方法 | 国产一区二区三区av在线| 亚洲在线视频网站| 国产一区二区99| 视频一区视频二区视频| 在线观看91精品国产麻豆| 国产精品一区二区人人爽| 国产日韩av网站| 日韩av在线一区| 黄页视频在线91| 2018国产精品| 免费av在线一区| 国产亚洲精品免费| 国产中文字幕一区二区| 欧美一级电影在线| bt欧美亚洲午夜电影天堂| 天天干天天曰天天操| 欧美寡妇偷汉性猛交| 狠狠狠色丁香婷婷综合激情| 国产乱码一区二区三区四区| 国产精品xxx视频| 一区二区三区蜜桃网| 亚洲天堂av片| 成人在线免费观看网址| 亚洲精品中文字幕女同| 99视频一区二区三区| 免费成人美女女在线观看| 精品国产乱码久久久久久88av| 欧美性生活一区| 水野朝阳av一区二区三区| 亚洲视频在线播放免费| 成人3d动漫一区二区三区91| 日韩欧美美女一区二区三区| 狠狠色狠狠色综合系列| 一区二区免费av| 久久噜噜噜精品国产亚洲综合 | 久久久高清视频| 欧美不卡福利| 中文字幕精品久久久久| 中文在线资源观看网站视频免费不卡| 国产超碰人人爽人人做人人爱| 欧美综合在线播放| 国产成人精品久久久| 精品国产91乱高清在线观看| 免费看国产片在线观看| 全黄一级裸体片| 一本久道久久综合狠狠爱亚洲精品| 精品三级在线观看| 成人黄色在线视频| 久久青青草视频| 波多野结衣作品集| 91九色蝌蚪成人| 亚洲人成电影网站色…| 亚洲人被黑人高潮完整版| 一级黄色片免费看| 久久人人爽人人爽人人片| 中文字幕第一页亚洲| 97国产一区二区精品久久呦| 欧洲精品一区二区三区在线观看| 精品亚洲免费视频| 九九热最新地址| 天堂v在线视频| 超碰日本道色综合久久综合 | 9191国产精品| 综合久久久久久久| 久久丁香综合五月国产三级网站| chinese全程对白| 国产成人在线小视频| 成人国产精品一区二区| 一区二区三区日韩在线| 欧美三级日韩三级| 国产精品女主播在线观看| 狠狠躁日日躁夜夜躁av| 国产在线成人精品午夜| 成人免费播放视频| 性欧美.com| 日本高清视频一区| 中文字幕日韩av电影| 欧美性极品少妇| 亚洲欧美另类小说| 国产成人免费高清| 殴美一级特黄aaaaaa| 91精品国产综合久久久蜜臀九色| 久久丫精品忘忧草西安产品| 91好吊色国产欧美日韩在线| 久久精品国产精品青草色艺| 国产丝袜高跟一区| 尤物在线观看一区| 国产亚洲va综合人人澡精品 | 一卡二卡三卡四卡五卡| 亚洲春色在线视频| 国产精品久久亚洲| 国产精品久久久久久久电影|