sql >> データベース >  >> RDS >> Sqlserver

SQLServerでのsp_help_jobscheduleの使用

    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;


    1. SQL ServerのSleep()と同等:WAITFORステートメント

    2. PostgreSQLDBからのコメントの取得

    3. NetBeans 9.0、パート2のJava9でJShellを使用する

    4. PostgreSQLの「INSERTにはターゲット列よりも多くの式があります」を修正しました