錯誤號需 > 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(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 資料庫建立,或各資料庫分別建立。TRY...CATCH 可在呼叫端優雅處理。