xp_logevent (Transact-SQL)
適用対象: SQL サーバー
ユーザー定義メッセージを SQL Server ログ ファイルと Windows イベント ログに記録します。 xp_logevent
は、クライアントにメッセージを送信せずにアラートを送信するために使用できます。
構文
xp_logevent { error_number , 'message' } [ , 'severity' ]
引数
error_number
50000
より大きいユーザー定義エラー番号。 最大値は 2147483647
(2^31 - 1) です。
'message'
最大 2048 文字の文字列。
'severity'
INFORMATIONAL
、WARNING
、またはERROR
の 3 つの文字列のいずれか。 severity は省略可能で、既定値は INFORMATIONAL
です。
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
xp_logevent
は、含まれているコード例の次のエラー メッセージを返します。
The command(s) completed successfully.
解説
Transact-SQL プロシージャ、トリガー、バッチなどのメッセージを送信する場合は、xp_logevent
の代わりに RAISERROR
ステートメントを使用します。 xp_logevent
は、クライアントのメッセージ ハンドラーを呼び出したり、 @@ERROR
設定したりしません。 Windows イベント ログと SQL Server のインスタンス内の SQL Server エラー ログ ファイルにメッセージを書き込むには、 RAISERROR
ステートメントを実行します。
アクセス許可
master
データベースのdb_owner固定データベース ロールのメンバーシップ、または固定サーバー ロール sysadmin のメンバーシップが必要です。
例
次の例では、Windows イベント ビューアーのメッセージに渡された変数を使用して、メッセージをログに記録します。
DECLARE @@TABNAME VARCHAR(30),
@@USERNAME VARCHAR(30),
@@MESSAGE VARCHAR(255);
SET @@TABNAME = 'customers';
SET @@USERNAME = USER_NAME();
SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user
' + @@USERNAME + '.';
USE master;
EXEC xp_logevent 60000, @@MESSAGE, informational;