共用方式為


sp_altermessage (Transact-SQL)

變更 SQL Server Database Engine 執行個體中之使用者自訂訊息的狀態。您可以利用 [sys.messages] 目錄檢視來檢視使用者自訂訊息。

ms175094.note(zh-tw,SQL.90).gif重要事項:
這項功能已變更,與舊版 SQL Server 不同。如需詳細資訊,請參閱<SQL Server 2005 中對於 Database Engine 功能的行為變更>。

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

語法

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

引數

  • [****@message_id =** ] message_number
    這是要從 [sys.messages] 中加以變更之訊息的錯誤號碼。message_numberint,沒有預設值。
  • [ @parameter = ] **'**write_to_log'
    用來搭配 @parameter_value,以指出要將訊息寫入 Microsoft Windows 應用程式記錄檔中。write_to_logsysname,沒有預設值。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 的值。

    ms175094.note(zh-tw,SQL.90).gif附註:
    如果訊息寫入 Windows 應用程式記錄檔中,它也會寫入 Database Engine 錯誤記錄檔中。
  • [ @parameter_value = ]****'**value'
    用來搭配 @parameter,以指出要將錯誤寫入 Microsoft Windows 應用程式記錄檔中。valuevarchar(5),沒有預設值。如果是 true,錯誤一律會寫入 Windows 應用程式記錄檔中。如果是 false,錯誤就不一定會寫入 Windows 應用程式記錄檔中,但隨著錯誤的產生方式而不同,也可能會寫入。如果指定了 value,您也必須指定 @parameterwrite_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 應用程式記錄檔中。

sp_altermessage 55001, 'WITH_LOG', 'true';
GO

請參閱

參考

RAISERROR (Transact-SQL)
sp_addmessage (Transact-SQL)
sp_dropmessage (Transact-SQL)
系統預存程序 (Transact-SQL)

其他資源

使用 RAISERROR

說明及資訊

取得 SQL Server 2005 協助