sp_altermessage (Transact-SQL)
變更使用者定義狀態或在 SQL Server Database Engine 執行個體中之系統訊息。 您可以利用 sys.messages 目錄檢視來檢視使用者自訂訊息。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
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