共用方式為


sp_altermessage (Transact-SQL)

變更使用者定義狀態或在 SQL Server Database Engine 執行個體中之系統訊息。 您可以利用 sys.messages 目錄檢視來檢視使用者自訂訊息。

適用於:SQL Server (SQL Server 2008 至目前版本)。

主題連結圖示 Transact-SQL 語法慣例

語法

sp_altermessage [ @message_id = ] message_number   ,[ @parameter = ]'write_to_log'
   ,[ @parameter_value = ]'value' 

引數

  • [@message_id = ] message_number
    要從 sys.messages 中加以變更之訊息的錯誤號碼。 message_number 是 int,沒有預設值。

  • [ @parameter = ] **'**write_to_log'
    用以搭配 @parameter_value,以指定要將訊息寫入 Microsoft Windows 應用程式記錄檔中。 write_to_log 是 sysname,沒有預設值。 write_to_log 必須設為 WITH_LOG 或 NULL。 如果 write_to_log 設為 WITH_LOG 或 NULL,且 @parameter_value 的值是 true,訊息就會寫入 Windows 應用程式記錄檔中。 如果 write_to_log 設為 WITH_LOG 或 NULL,且 @parameter_value 的值是 false,訊息就不一定會寫入 Windows 應用程式記錄檔中,但隨著錯誤的產生方式而不同,也可能會寫入。 如果指定了 write_to_log,您也必須指定 @parameter_value 的值。

    注意

    如果訊息寫入 Windows 應用程式記錄檔中,它也會寫入 Database Engine 錯誤記錄檔中。

  • [ @parameter_value = ]**'**value'
    用以搭配 @parameter,以指定要將錯誤寫入 Microsoft Windows 應用程式記錄檔中。 value 是 varchar(5),沒有預設值。 如果是 true,錯誤一律會寫入 Windows 應用程式記錄檔中。 如果是 false,錯誤就不一定會寫入 Windows 應用程式記錄檔中,但隨著錯誤的產生方式而不同,也可能會寫入。 如果指定了 value,您也必須指定 @parameter 的 write_to_log。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

備註

設定了 WITH_LOG 選項的 sp_altermessage,效果類似於 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

請參閱

參考

RAISERROR (Transact-SQL)

sp_addmessage (Transact-SQL)

sp_dropmessage (Transact-SQL)

系統預存程序 (Transact-SQL)