首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 自訂錯誤訊息:新增與拋出 RAISERROR 實戰

     編輯:關於SqlServer

新增自訂錯誤 (sp_addmessage)

錯誤號需 > 50000。支援多語言:

-- 英文版
EXEC sp_addmessage 60001, 16,
    @msgtext = N'User PassWord Error',
    @lang = 'us_english';

-- 繁體中文版
EXEC sp_addmessage 60001, 16,
    @msgtext = N'使用者密碼錯誤',
    @lang = '繁體中文';
  • 60001:自訂錯誤號
  • 16:嚴重等級 (11-16 為使用者可修正的錯誤)

拋出自訂錯誤 (RAISERROR)

RAISERROR(60001, 1, 1);
-- 參數:錯誤號, 嚴重等級, 狀態碼

實際應用範例

CREATE PROCEDURE usp_Login @uid NVARCHAR(50), @pwd NVARCHAR(50)
AS
BEGIN
    IF NOT EXISTS (SELECT 1 FROM Users WHERE UserID = @uid AND Pwd = @pwd)
    BEGIN
        RAISERROR(60001, 16, 1); -- 直接拋出自訂錯誤
        RETURN;
    END
    -- 登入成功邏輯...
END

注意事項

  • 自訂錯誤需在 master 資料庫建立,或各資料庫分別建立。
  • 嚴重等級 19-25 需系統管理員權限,一般業務邏輯用 16 即可。
  • 搭配 TRY...CATCH 可在呼叫端優雅處理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved