sp_altermessage (Transact-SQL)

適用於:SQL Server

改變 SQL Server 實例中使用者定義或系統訊息的狀態 資料庫引擎。 您可以使用目錄檢視來檢視 sys.messages 使用者定義的訊息。

Transact-SQL 語法慣例

語法

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 搭配使用,表示訊息要寫入 Microsoft Windows 應用程式記錄檔。 @parameter為 sysname,沒有預設值。

@parameter必須設定為 WITH_LOGNULL。 如果@parameter設定為 WITH_LOGNULL,且 @parameter_value 的值true,則會將訊息寫入 Windows 應用程式記錄檔。 如果@parameter設定為 WITH_LOGNULL 且 @parameter_value 的值false,則訊息不一定會寫入 Windows 應用程式記錄檔,但可能會根據引發錯誤的方式寫入。

如果訊息寫入 Windows 應用程式記錄檔,也會寫入 資料庫引擎 錯誤記錄檔。

如果 指定@parameter也必須指定@parameter_value

[ @parameter_value = ] 'parameter_value'

與 @parameter 搭配使用,表示錯誤會寫入 Microsoft 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