SQL Serverでは、sp_help_jobschedule ストアドプロシージャは、ジョブのスケジューリングに関する情報を返します。
この記事では、例を含むこのストアドプロシージャの概要を説明します。
構文
公式の構文は次のようになります:
sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @schedule_name = ] 'schedule_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @include_description = ] include_description ]
sp_help_jobscheduleを呼び出すとき 、ジョブ名またはそのID(両方ではない)、またはスケジュールIDのいずれかを指定する必要があります。スケジュールの名前を渡すこともできますが、ジョブIDまたはその名前と組み合わせた場合に限ります。
受け入れられる組み合わせは少し注意が必要です。基本的には次のようになります:
schedule_idの場合 が指定されており、job_idも指定されていません また、job_name 指定できます。それ以外の場合、job_id またはjob_name パラメータはschedule_nameで使用できます 。
ただし、schedule_idは使用できません。 スケジュールが複数のジョブに関連付けられている場合。
sp_help_jobscheduleに注意してください msdbにあります データベースなので、そこから実行する必要があります。これは、 msdbに切り替えることで実行できます。 データベース(例:USE msdb )、またはデータベース名とスキーマ(つまり、msdb.dbo.sp_help_jobscheduleでプロシージャを修飾することによって) 。
例
特定のジョブに関連付けられているすべてのスケジュールを返す方法を示す例を次に示します。
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest'; 結果:
これにより、@job_nameで指定されたジョブに関連付けられているスケジュールのリストが返されます。 引数。
または、@job_idを渡すこともできます :
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
しかし、その場合、@job_nameを使用できませんでした (どちらか一方です)
ジョブIDを使用する場合、必要に応じてパラメーター名を省略できます。
EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8'; @schedule_idの使用 パラメータ
または、IDに基づいてスケジュールを取得することもできます:
EXEC sp_help_jobschedule
@schedule_id = 15; スケジュールが複数のジョブに関連付けられていない限り、これは正常に機能します。
スケジュールが複数のジョブに関連付けられている場合は、次のようになります。
EXEC sp_help_jobschedule
@schedule_id = 14; 結果:
Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22] The schedule ID "14" is used by more than one job. Specify the job_id.
また、job_idを指定するように求められますが 、これを行う場合は、schedule_idを削除する必要があります (前述のように、schedule_idを渡した場合 、job_nameを含めることはできません またはjob_id 。
これを示すために、単にjob_idを追加すると schedule_idを保持します そこで、次のエラーが発生します。
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
@schedule_id = 14; 結果:
Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22] You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.
説明を含める
もう1つできることは、スケジュールの説明を含めるかどうかを指定することです。
デフォルトでは、説明は結果セットに含まれていません。実際、schedule_description 列はです 含まれていますが、明示的に要求しない限り、説明は含まれていません。リクエストしない場合は、schedule_description 列に(Description not requested.) 。
@include_description パラメータはビットです 、デフォルトは0 、つまり、説明は表示されません。 1の値を渡す 説明が表示されます。
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest',
@include_description = 1;