T-SQLを使用する場合は、sp_add_scheduleを使用できます。 SQLServerエージェントのスケジュールを追加するためのストアドプロシージャ。
この手順でスケジュールを作成しますが、どのジョブにも添付しません。ジョブにアタッチするには、sp_attach_scheduleを使用する必要があります 手順。
sp_add_jobscheduleを使用することもできます スケジュールを作成し、すべて同じ手順で添付します。
sp_add_scheduleの例 手順
sp_add_scheduleを使用する例を次に示します。 新しいスケジュールを作成するには:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO このストアドプロシージャは、この例に含まれているよりも多くの引数を受け入れますが、これらはより一般的なものの一部です。受け入れられる値の概要については、以下の表を参照してください。
@schedule_name は必須の引数ですが、その他はオプションであり、指定しない場合に備えてデフォルト設定があります。
これで、sp_attach_scheduleを使用できます そのスケジュールを既存のジョブに添付するには:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
sp_attach_scheduleを使用する場合 、ジョブの名前またはそのID(両方ではない)、およびスケジュール名またはID(両方ではない)を指定する必要があります。
sp_add_jobscheduleの例 手順
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;
この手順では、@job_name 引数はジョブ名と@nameを提供します 引数は、スケジュールに付ける名前を提供します。
パラメータ値
スケジュールデータがmsdbに保存される方法 データベースを使用すると、T-SQLを使用したジョブのスケジューリングに関して少し注意が必要になります。
日付/時刻の値はintとして保存されます タイプ。頻度タイプはintとして表されます 、間隔値、およびその他のさまざまなオプションも同様です。
以下は、上記の例で提供されたパラメータの許容値の概要です。
@freq_type
この引数は、ジョブがいつ実行されるかを指定します。次の値を受け入れます:
| 値 | 説明 |
|---|---|
1 | 一度 |
4 | 毎日 |
8 | 毎週 |
16 | 毎月 |
32 | 毎月、freq_intervalを基準に |
64 | SQLエージェントサービスの開始時に実行 |
128 | コンピューターがアイドル状態のときに実行する |
@freq_interval
この引数は、ジョブが実行される日を指定します。
この引数は、@freq_typeの値によって異なります。 次の表に概説されているように、引数:
freq_typeの値 | freq_intervalへの影響 |
|---|---|
1 (1回) | freq_interval 未使用です。 |
4 (毎日) | すべてのfreq_interval 日。 |
8 (毎週) | freq_interval 次の1つ以上です(ORと組み合わせて 論理演算子): 1 (日曜日) 2 (月曜日) 4 (火曜日) 8 (水曜日) 16 (木曜日) 32 (金曜日) 64 (土曜日) |
16 (毎月) | freq_intervalについて 月の日。 |
32 (月次相対) | freq_interval 次のいずれかです。 1 (日曜日) 2 (月曜日) 3 (火曜日) 4 (水曜日) 5 (木曜日) 6 (金曜日) 7 (土曜日) 8 (日) 9 (平日) 10 (週末) |
64 (SQLServerAgentサービスの開始時) | freq_interval 未使用です。 |
128 | freq_interval 未使用です。 |
@freq_recurrence_factor
これは、スケジュールされたジョブの実行間の週数または月数を指定します。
これはintです 、デフォルトは0 、freq_typeの場合にのみ使用されます 8です 、16 、または32 。
@active_start_time
@active_start_dateの間の任意の日の時刻を指定します および@active_end_date ジョブの実行を開始するための引数。 @active_start_time int 、デフォルトは000000 、12:00:00A.M.を示します24時間制で、フォームHHMMSSを使用して入力する必要があります。
@active_start_date
上記の例には含まれていませんが、@active_start_date 引数を使用すると、ジョブの実行を開始できる日付を指定できます。これはintです 、デフォルトはNULLで、今日の日付を示します。日付はYYYYMMDDとしてフォーマットされます。
@active_end_date
@active_end_dateを提供することもできます 引数。ジョブの実行を停止できる日付を指定します。
@active_end_date int 、デフォルトは99991231 、は9999年12月31日を示します。日付はYYYYMMDDとしてフォーマットされます。
詳細h2>
sp_add_scheduleについては、Microsoftのドキュメントを参照してください。 および/またはsp_add_jobscheduleに関するMicrosoftのドキュメント さまざまな引数とそれらの受け入れられる値の詳細については、