sp_altermessage (Transact-SQL)
SQL Server データベース エンジンのインスタンスでユーザー定義メッセージまたはシステム メッセージの状態を変更します。 ユーザー定義メッセージは、sys.messages カタログ ビューを使用して表示できます。
構文
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 のアプリケーション ログにメッセージを書き込む場合は、データベース エンジンのエラー ログ ファイルにも同じ内容が書き込まれます。
[ @parameter_value = ]'value'
@parameter と共に使用して、Microsoft Windows のアプリケーション ログにエラーを書き込むことを指定します。 value のデータ型は varchar(5) で、既定値はありません。 true の場合は、エラーは常に Windows のアプリケーション ログに書き込まれます。 false の場合、常に Windows のアプリケーション ログに書き込まれるわけではありませんが、エラーの発生状況によっては書き込まれることもあります。 value を指定する場合は、@parameter に write_to_log も指定する必要があります。
リターン コード値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
結果セット
ありません。
説明
sp_altermessage に WITH_LOG オプションを付けると、RAISERROR WITH LOG パラメーターと同じように機能します。ただし、sp_altermessage では、既存メッセージの記録動作を変更できる点が異なります。 メッセージを WITH_LOG に変更すると、ユーザーがエラーをどのような方法で起こしたかとは無関係に、メッセージは常に Windows のアプリケーション ログに書き込まれます。 WITH_LOG オプションなしで RAISERROR を実行しても、Windows のアプリケーション ログにエラーが書き込まれます。
システム メッセージは、sp_altermessage を使用して変更できます。
権限
serveradmin 固定サーバー ロールのメンバーシップである必要があります。
使用例
次の例では、既存のメッセージ 55001 のログを Windows のアプリケーション ログに記録します。
sp_altermessage 55001, 'WITH_LOG', 'true';
GO