sp_help_jobhistory (Transact-SQL)

マルチサーバー管理ドメインに所属するサーバーのジョブに関する情報を提供します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_help_jobhistory [ [ @job_id = ] job_id ] 
     [ , [ @job_name = ] 'job_name' ] 
     [ , [ @step_id = ] step_id ] 
     [ , [ @sql_message_id = ] sql_message_id ] 
     [ , [ @sql_severity = ] sql_severity ] 
     [ , [ @start_run_date = ] start_run_date ] 
     [ , [ @end_run_date = ] end_run_date ] 
     [ , [ @start_run_time = ] start_run_time ] 
     [ , [ @end_run_time = ] end_run_time ] 
     [ , [ @minimum_run_duration = ] minimum_run_duration ] 
     [ , [ @run_status = ] run_status ] 
     [ , [ @minimum_retries = ] minimum_retries ] 
     [ , [ @oldest_first = ] oldest_first ] 
     [ , [ @server = ] 'server' ] 
     [ , [ @mode = ] 'mode' ]

引数

  • [ @job_id= ] job_id
    ジョブの識別番号を指定します。job_id のデータ型は uniqueidentifier で、既定値は NULL です。

  • [ @job_name= ] 'job_name'
    ジョブの名前を指定します。job_name のデータ型は sysname で、既定値は NULL です。

  • [ @step_id= ] step_id
    ステップの識別番号を指定します。step_id のデータ型は int で、既定値は NULL です。

  • [ @sql_message_id= ] sql_message_id
    ジョブの実行時に Microsoft SQL Server で返されるエラー メッセージの識別番号を指定します。sql_message_id のデータ型は int で、既定値は NULL です。

  • [ @sql_severity= ] sql_severity
    ジョブの実行時に SQL Server で返されるエラー メッセージの重大度を指定します。sql_severity のデータ型は int で、既定値は NULL です。

  • [ @start_run_date= ] start_run_date
    ジョブを開始した日付を指定します。start_run_date のデータ型は int で、既定値は NULL です。start_run_date は、YYYYMMDD の形式で入力する必要があります。YYYY は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日を表します。

  • [ @end_run_date= ] end_run_date
    ジョブが完了した日付を指定します。end_run_date のデータ型は int で、既定値は NULL です。end_run_date は、YYYYMMDD の形式で入力する必要があります。YYYY は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日を表します。

  • [ @start_run_time= ] start_run_time
    ジョブを開始した時刻を指定します。start_run_time のデータ型は int で、既定値は NULL です。start_run_time は、HHMMSS の形式で入力する必要があります。HH は 2 桁の時、MM は 2 桁の分、SS は 2 桁の秒を表します。

  • [ @end_run_time= ] end_run_time
    ジョブが完了した時刻を指定します。end_run_time のデータ型は int で、既定値は NULL です。end_run_time は、HHMMSS の形式で入力する必要があります。HH は 2 桁の時、MM は 2 桁の分、SS は 2 桁の秒を表します。

  • [ @minimum_run_duration= ] minimum_run_duration
    ジョブを完了するのに必要な最小時間を指定します。minimum_run_duration のデータ型は int で、既定値は NULL です。minimum_run_duration は、HHMMSS の形式で入力する必要があります。HH は 2 桁の時間、MM は 2 桁の分、SS は 2 桁の秒を表します。

  • [ @run_status= ] run_status
    ジョブの実行状態を指定します。run_status のデータ型は int で、既定値は NULL です。次のいずれかの値を指定できます。

    説明

    0

    失敗

    1

    成功

    2

    再試行 (ステップのみ)

    3

    キャンセル

    4

    実行中メッセージ

    5

    不明

  • [ @minimum_retries= ] minimum_retries
    ジョブの実行を再試行する最小回数を指定します。minimum_retries のデータ型は int で、既定値は NULL です。

  • [ @oldest_first= ] oldest_first
    ジョブを古い順に出力するかどうかを指定します。oldest_first のデータ型は int で、既定値は 0 です。既定値はジョブを新しい順に出力することを示します。1 は、ジョブを古い順に出力することを示します。

  • [ @server= ] 'server'
    ジョブを実行したサーバーの名前を示します。server のデータ型は nvarchar(30) で、既定値は NULL です。

  • [ @mode= ] 'mode'
    SQL Server で結果セットにあるすべての列 (FULL) を出力するか、列の概要を出力するかを示します。mode のデータ型は varchar(7) で、既定値は SUMMARY です。

戻り値

0 (成功) または 1 (失敗)

結果セット

実際の列一覧は、mode の値に応じて異なります。次に、最も広範な列セットを示します。これは、mode が FULL の場合に返されます。

列名

データ型

説明

instance_id

int

履歴エントリの識別番号。

job_id

uniqueidentifier

ジョブ識別番号。

job_name

sysname

ジョブ名。

step_id

int

ステップ識別番号。ジョブ履歴の場合は 0 です。

step_name

sysname

ステップ名。ジョブ履歴の場合は NULL です。

sql_message_id

int

Transact-SQL ステップの場合、コマンドの実行中に最も新しく発生した Transact-SQL エラーの番号。

sql_severity

int

Transact-SQL ステップの場合、コマンドの実行中に発生した最も重大な Transact-SQL エラーの重大度。

message

nvarchar(1024)

ジョブまたはステップの履歴メッセージ。

run_status

int

ジョブまたはステップの結果。

run_date

int

ジョブまたはステップの実行を開始した日付。

run_time

int

ジョブまたはステップの実行を開始した時刻。

run_duration

int

ジョブまたはステップを実行してからの経過時間 (HHMMSS 形式)。

operator_emailed

nvarchar(20)

このジョブに関する電子メールを送信したオペレータ。ステップ履歴の場合は NULL です。

operator_netsent

nvarchar(20)

このジョブに関するネットワーク メッセージを送信したオペレータ。ステップ履歴の場合は NULL です。

operator_paged

nvarchar(20)

このジョブに関するページを送信したオペレータ。ステップ履歴の場合は NULL です。

retries_attempted

int

ステップの再試行回数。ジョブ履歴の場合は常に 0 です。

server

nvarchar(30)

ステップまたはジョブを実行するサーバー。これは常に local です。

説明

sp_help_jobhistory では、指定した定期ジョブの履歴と共にレポートが返されます。どのパラメータも指定しない場合は、レポートにはすべての定期ジョブの履歴が含まれます。

権限

既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。

SQLAgentUserRole データベース ロールのメンバは、自分が所有しているジョブの履歴のみを表示できます。

A. すべてのジョブに関する情報を一覧表示する

次の例では、ジョブ NightlyBackups に関するすべてのジョブ情報を一覧表示します。

USE msdb ;
GO

EXEC dbo.sp_help_jobhistory 
    @job_name = N'NightlyBackups' ;
GO

B. 一定の条件に一致するジョブに関する情報を一覧表示する

次の例では、エラー メッセージ 50100 (ユーザー定義のエラー メッセージ) と重大度 20 を使用して、失敗したジョブおよびジョブ ステップに関する、すべての列とすべてのジョブ情報を表示します。

USE msdb
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL' ;
GO