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

SQL Serverのsp_add_scheduleとsp_add_jobschedule:違いは何ですか?

    T-SQLを使用してSQLServerエージェントジョブを作成している場合、sp_add_scheduleを使用してスケジュールを作成するかどうか疑問に思われるかもしれません。 ストアドプロシージャまたはsp_add_jobschedule 手順。

    これら2つの手順の違いについて簡単に説明します。

    違い

    • sp_add_schedule プロシージャはスケジュールを作成しますが、それをどのジョブにも添付しません。これを行うには、sp_attach_scheduleを使用する必要があります 手順。
    • sp_add_jobschedule プロシージャは、スケジュールを作成し、それを特定のジョブにすべて一度に添付します。

    したがって、sp_add_jobschedule 特定のジョブの新しいスケジュールを作成する必要があり、そのジョブがすでに存在する場合は、を使用しても問題ありません。複数のジョブのスケジュールを作成していて、それらがまだ存在しない場合は、sp_add_scheduleを使用できます。 。次に、sp_attach_scheduleを使用できます 後であなたの仕事にそれを添付します。

    ただし、sp_add_scheduleを使用できないわけではありません。 sp_add_jobscheduleの代わりに ジョブがすでに存在する場合。

    sp_add_scheduleの使用 (sp_attach_scheduleと組み合わせて )スケジュールを作成してジョブに添付するプロセスを分離できます。単一のスケジュールで単一のジョブを作成する場合でも、このコンボを使用できます。

    つまり、sp_add_scheduleを使用できます sp_add_jobscheduleの代わりに すべてのSQLServerエージェントジョブに対して。

    sp_add_jobschedule 手順

    sp_add_jobschedule プロシージャは、特定のSQLServerエージェントジョブのスケジュールを作成します。このプロシージャを呼び出すときは、適用するジョブの名前またはIDを指定する必要があります。

    基本的に、この手順ではスケジュールを作成し、それを1つのジョブに添付します。

    これは、ジョブを作成してsp_add_jobscheduleを使用する例です。 ストアドプロシージャ:

    EXEC sp_add_jobschedule 
        @job_name = N'BackupMusicDB',
        @name = N'Weekly_Sun_3AM',
        @freq_type = 8,
        @freq_interval = 1,
        @freq_recurrence_factor = 1,
        @active_start_time = 30000;

    sp_add_jobscheduleを見ると プロシージャ、@job_name 引数はジョブ名を提供します。 @name 引数は、スケジュールに付ける名前を提供します。

    sp_add_schedule 手順

    sp_add_schedule プロシージャを使用すると、添付するジョブを指定しなくてもスケジュールを作成できます。

    この手順でスケジュールを作成しますが、どのジョブにも添付しません。ジョブにアタッチするには、sp_attach_scheduleを使用する必要があります 手順。

    次に例を示します:

    EXEC sp_add_schedule 
        @schedule_name = N'RunDailyAM',
        @freq_type = 4,
        @freq_interval = 4,
        @active_start_time = 041000;
    GO  
    EXEC sp_attach_schedule  
       @job_name = N'BackupPetHotelDB',  
       @schedule_name = N'RunDailyAM';  
    GO

    sp_attach_scheduleを使用する場合 、ジョブの名前またはそのID(両方ではない)、およびスケジュール名またはID(両方ではない)を指定する必要があります。

    sp_add_jobscheduleを添付する スケジュール

    sp_attach_scheduleに注意することが重要です sp_add_scheduleの両方で作成されたスケジュールを添付できます sp_add_jobscheduleを使用します 。

    つまり、sp_add_jobscheduleを使用してスケジュールを作成します スケジュールの作成時に指定したジョブだけに制限されません。後でsp_attach_scheduleを使用して、他のジョブにアタッチすることもできます。 。


    1. XMLをSQLServerに挿入するときにエンコードエラーを切り替えることができない問題を解決する方法

    2. データベースメールアカウントをプロファイルに追加する(T-SQL)

    3. MySQL厳密モードを無効にする方法

    4. 実際のエスケープ文字列とPDO