適用於:SQL Server
改變 SQL Server 實例中使用者定義或系統訊息的狀態 資料庫引擎。 您可以使用目錄檢視來檢視 sys.messages 使用者定義的訊息。
語法
sp_altermessage
[ @message_id = ] message_id
, [ @parameter = ] N'parameter'
, [ @parameter_value = ] 'parameter_value'
[ ; ]
引數
[ @message_id = ] message_id
要從 sys.messages改變之訊息的錯誤號碼。
@message_id為 int,沒有預設值。
[ @parameter = ] N'parameter'
與 @parameter_value 搭配使用,表示訊息要寫入 Windows 應用程式記錄檔。 @parameter為 sysname,沒有預設值。
@parameter必須設定為 WITH_LOG 或 NULL。 如果@parameter設定為 WITH_LOG 或 NULL,且 @parameter_value 的值為 true,則會將訊息寫入 Windows 應用程式記錄檔。 如果@parameter設定為 WITH_LOG 或 NULL 且 @parameter_value 的值為 false,則訊息不一定會寫入 Windows 應用程式記錄檔,但可能會根據引發錯誤的方式寫入。
如果訊息寫入 Windows 應用程式記錄檔,也會寫入 Database Engine 錯誤記錄檔。
如果 指定@parameter , 也必須指定@parameter_value 。
[ @parameter_value = ] 'parameter_value'
與 @parameter 搭配使用,表示錯誤要寫入 Windows 應用程式記錄檔。 @parameter_value為 varchar(5),沒有預設值。
- 如果
true為 ,錯誤一律會寫入 Windows 應用程式記錄檔。 - 如果
false為 ,則錯誤不一定會寫入 Windows 應用程式記錄檔,但可能會根據引發錯誤的方式寫入。
如果 指定@parameter_value , 也必須指定@parameter 。
傳回碼值
0 (成功) 或 1 (失敗)。
結果集
無。
備註
與 sp_altermessage 選項的效果WITH_LOG類似 參數的效果RAISERROR WITH LOG,不同之處在於sp_altermessage會變更現有訊息的記錄行為。 如果訊息已變更為 WITH_LOG,則不論使用者如何叫用錯誤,它一律會寫入 Windows 應用程式記錄檔。 即使 RAISERROR 執行時沒有 WITH_LOG 選項,錯誤仍會寫入 Windows 應用程式記錄檔。
您可以使用 來修改 sp_altermessage系統訊息。
權限
需要 serveradmin 固定伺服器角色中的成員資格。
範例
下列範例會將現有的訊息 55001 寫入 Windows 應用程式記錄。
EXECUTE sp_altermessage 55001, 'WITH_LOG', 'true';
GO