SQL基礎(六)--RaiseError的用法


raiseerror 是由單詞raise和error組成;raise:上升,增加;error:錯誤;

raiseerror:拋出一個錯誤,通常和try,catch配合使用。

代碼示例如下:

BEGIN TRY
     BEGIN
      
           IF @ReturnPointResult<>'1000099'
				BEGIN
					SET @ErrorResult= N'Update point of customer failed,ErrorCode:'+@ReturnPointResult;
					RAISERROR(@ErrorResult, 11, 1);
				END
     END

END TRY	

BEGIN CATCH	 
     BEGIN
		DECLARE @ERRORMessage NVARCHAR(2000)
		SET @ERRORMessage = ERROR_MESSAGE() + CAST(@Step AS  NVARCHAR(10));
		RAISERROR(@ERRORMessage,11,1)
    END
END CATCH;

第一個參數: 描述錯誤信息,字符串格式。(也可用字符分割,獲取信息)

第二個參數: 用戶定義與該消息關聯的嚴重級別。(很重要)

                    任何用戶都可以指定0到18之間的嚴重級別。

                    [0,10]的閉區間內,不會跳到cathc;

                    [11,19]則跳到catch;

                    如果是[20,無窮),則直接終止數據庫連接;

 

第三個參數: 如果在多個位置引發相同的用戶定義錯誤,

                    則針對每個位置使用唯一的狀態號有助於找到引發錯誤的代碼段。

                    介於1至127之間的任意整數。(默認值是1)

                    當state值為0或大於127時會生成錯誤!

第四個參數(不常用): 輸出變量參數。

 

第五個參數(不常用)錯誤的自定義選項,可以是下列任何一值

                                      LOG :在錯誤日志和應用程序日志中記錄錯誤;
                                      NOWAIT:將消息立即發送給客戶端;
                                      SETERROR:將 @@ERROR 值和 ERROR_NUMBER 值設置為 msg_id 或 50000;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM