次の方法で共有


sp_readerrorlog (Transact-SQL)

適用対象: SQL Server

SQL Server の内容を読み取ったり、エラー ログ ファイルをSQL Server エージェントしたり、キーワードをフィルター処理したりできます。

Transact-SQL 構文表記規則

構文

sp_readerrorlog
    [ [ @p1 = ] p1 ]
    [ , [ @p2 = ] p2 ]
    [ , [ @p3 = ] N'p3' ]
    [ , [ @p4 = ] N'p4' ]
[ ; ]

引数

[ @p1 = ] p1

表示するログの整数値。 @p1int で、既定値は 0 です。 現在のエラー ログの値は 0 です。 前の値は 1 (ERRORLOG.1)、前の値は 2 (ERRORLOG.2) です。

[ @p2 = ] p2

ログを表示する製品の整数値。 @p2int で、既定値は NULL です。 SQL Server または 2 SQL Server エージェント の1を使用します。 値が指定されていない場合は、SQL Server 製品が使用されます。

[ @p3 = ] N'p3'

エラー ログを表示するときにフィルター処理する文字列の文字列値。 @p3nvarchar(4000) で、既定値は NULL です。

[ @p4 = ] N'p4'

エラー ログを表示するときに検索をさらに絞り込むためにフィルター処理する追加の文字列の文字列値。 @p4nvarchar(4000)で、既定値は NULL です。 このパラメーターは、最初の文字列検索 @p3に追加のフィルターを提供します。

リターン コードの値

なし。

結果セット

要求されたエラー ログの内容を表示します。 フィルター文字列を使用する場合は、それらの文字列に一致する行のみが表示されます。

解説

SQL Server が起動されるたびに、現在のエラー ログの名前が ERRORLOG.1 に変更されます。 ERRORLOG.1ERRORLOG.2になり、 ERRORLOG.2ERRORLOG.3になります。 sp_readerrorlog を使用すると、ファイルが存在する限り、これらのエラー ログ ファイルのいずれかを読み取りできます。

アクセス許可

SQL Server 2019 (15.x) 以前のバージョンでは、サーバーに対する VIEW SERVER STATE 権限が必要です。

SQL Server 2022 (16.x) 以降のバージョンでは、サーバーに対する VIEW ANY ERROR LOG 権限が必要です。

次の例では、SQL Server エラー ログを循環します。

A. 現在の SQL Server エラー ログを読み取ります

EXECUTE sp_readerrorlog;

B. 前のSQL Server エージェントエラー ログを表示する

EXECUTE sp_readerrorlog 1, 2;

C: データベースが起動していることを示すログ メッセージを検索する

EXECUTE sp_readerrorlog 0, 1, 'database', 'start';