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