麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

SQL Server 中 RAISERROR 的用法詳細介紹

2024-08-31 01:04:31
字體:
來源:轉載
供稿:網友

 SQL Server 中 RAISERROR 的用法

raiserror 的作用: raiserror 是用于拋出一個錯誤。[ 以下資料來源于sql server 2005的幫助 ]

其語法如下:

RAISERROR ( { msg_id | msg_str | @local_variable }          { ,severity ,state }          [ ,argument [ ,...n ] ]      )      [ WITH option [ ,...n ] ]

簡要說明一下:

  第一個參數:{ msg_id | msg_str | @local_variable }

      msg_id:表示可以是一個sys.messages表中定義的消息代號;
              使用 sp_addmessage 存儲在 sys.messages 目錄視圖中的用戶定義錯誤消息號。
              用戶定義錯誤消息的錯誤號應當大于 50000。

     msg_str:表示也可以是一個用戶定義消息,該錯誤消息最長可以有 2047 個字符;
             (如果是常量,請使用N'xxxx',因為是nvarchar的)
              當指定 msg_str 時,RAISERROR 將引發一個錯誤號為 5000 的錯誤消息。

     @local_variable:表示也可以是按照 msg_str 方式的格式化字符串變量。           

第二個參數:severity

           用戶定義的與該消息關聯的嚴重級別。(這個很重要)
            任何用戶都可以指定 0 到 18 之間的嚴重級別。
            [0,10]的閉區間內,不會跳到catch;
            如果是[11,19],則跳到catch;
            如果[20,無窮),則直接終止數據庫連接;

第三個參數:state

            如果在多個位置引發相同的用戶定義錯誤,
            則針對每個位置使用唯一的狀態號有助于找到引發錯誤的代碼段。
         
            介于 1 至 127 之間的任意整數。(state 默認值為1)
            當state 值為 0 或大于 127 時會生成錯誤!

第四個參數:argument

            用于代替 msg_str 或對應于 msg_id 的消息中的定義的變量的參數。

第五個參數:option

            錯誤的自定義選項,可以是下表中的任一值:
            LOG :在錯誤日志和應用程序日志中記錄錯誤;
            NOWAIT:將消息立即發送給客戶端;
            SETERROR:將 @@ERROR 值和 ERROR_NUMBER 值設置為 msg_id 或 50000;

[SQL]代碼示例

--示例1

DECLARE @raiseErrorCode nvarchar(50)SET @raiseErrorCode = CONVERT(nvarchar(50), YOUR UNIQUEIDENTIFIER KEY)RAISERROR('%s INVALID ID. There is no record in table',16,1, @raiseErrorCode) 

--示例2

RAISERROR (       N'This is message %s %d.', -- Message text,       10,            -- Severity,       1,             -- State,       N'number',         -- First argument.       5             -- Second argument.     ); -- The message text returned is: This is message number 5.GO

--示例3

RAISERROR (N'<<%*.*s>>', -- Message text.      10,      -- Severity,      1,      -- State,      7,      -- First argument used for width.      3,      -- Second argument used for precision.      N'abcde');  -- Third argument supplies the string.-- The message text returned is: <<  abc>>.GO

--示例4

RAISERROR (N'<<%7.3s>>', -- Message text.      10,      -- Severity,      1,      -- State,      N'abcde');  -- First argument supplies the string.-- The message text returned is: <<  abc>>.GO

--示例5   

--A. 從 CATCH 塊返回錯誤消息

以下代碼示例顯示如何在 TRY 塊中使用 RAISERROR 使執行跳至關聯的 CATCH 塊中。
它還顯示如何使用 RAISERROR 返回有關調用 CATCH 塊的錯誤的信息。

BEGIN TRY  RAISERROR ('Error raised in TRY block.', -- Message text.        16, -- Severity.        1 -- State.        );END TRYBEGIN CATCH  DECLARE @ErrorMessage NVARCHAR(4000);  DECLARE @ErrorSeverity INT;  DECLARE @ErrorState INT;  SELECT     @ErrorMessage = ERROR_MESSAGE(),    @ErrorSeverity = ERROR_SEVERITY(),    @ErrorState = ERROR_STATE();  RAISERROR (@ErrorMessage, -- Message text.        @ErrorSeverity, -- Severity.        @ErrorState   -- State.        );END CATCH;

--示例6

--B. 在 sys.messages 中創建即席消息
以下示例顯示如何引發 sys.messages 目錄視圖中存儲的消息。
該消息通過 sp_addmessage 系統存儲過程,以消息號50005添加到 sys.messages 目錄視圖中。

sp_addmessage @msgnum = 50005,        @severity = 10,        @msgtext = N'<<%7.3s>>';GORAISERROR (50005, -- Message id.      10,  -- Severity,      1,   -- State,      N'abcde'); -- First argument supplies the string.-- The message text returned is: <<  abc>>.GOsp_dropmessage @msgnum = 50005;GO

--示例7

--C. 使用局部變量提供消息文本
以下代碼示例顯示如何使用局部變量為 RAISERROR 語句提供消息文本。

sp_addmessage @msgnum = 50005,       @severity = 10,       @msgtext = N'<<%7.3s>>';GORAISERROR (50005, -- Message id.      10,  -- Severity,      1,   -- State,      N'abcde'); -- First argument supplies the string.-- The message text returned is: <<  abc>>.GOsp_dropmessage @msgnum = 50005;GO

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片国产| 欧美一级棒 | 国产精品久久久久久久久久东京 | 久久人人做 | 日本视频在线免费观看 | 精品国产一区二区三区四区在线 | 久草在线视频首页 | 欧美3p激情一区二区三区猛视频 | 精品小视频 | 久久精品视频在线 | 国产精品久久久久永久免费 | 久久亚洲春色中文字幕久久 | 九色激情网 | 91羞羞| 日韩黄色一级视频 | 黄色电影免费网址 | 久久久久国产成人精品亚洲午夜 | www成人在线观看 | 久久精品在线免费观看 | 成人在线第一页 | 成人精品一区二区三区中文字幕 | 国产精品av久久久久久网址 | 国人精品视频在线观看 | 毛片毛片免费看 | 亚洲小视频在线 | 欧美黄 片免费观看 | 国产午夜亚洲精品 | 亚州综合图片 | 法国性xxx精品hd专区 | 日韩一级片黄色 | 国产精品视频一区二区噜噜 | 亚洲午夜一区二区三区 | 一级免费大片 | 国产精品亚洲yourport | 成年免费网站 | 成人午夜在线免费观看 | 欧美一区二区精品夜夜嗨 | 曰批全过程120分钟免费69 | 国产亚洲精品综合一区91 | 黄色小视频免费在线观看 | 神秘电影91 |