sp_add_schedule (Transact-SQL)
任意の数のジョブで使用できるスケジュールを作成します。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで) |
構文
sp_add_schedule [ @schedule_name = ] 'schedule_name'
[ , [ @enabled = ] enabled ]
[ , [ @freq_type = ] freq_type ]
[ , [ @freq_interval = ] freq_interval ]
[ , [ @freq_subday_type = ] freq_subday_type ]
[ , [ @freq_subday_interval = ] freq_subday_interval ]
[ , [ @freq_relative_interval = ] freq_relative_interval ]
[ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @active_start_time = ] active_start_time ]
[ , [ @active_end_time = ] active_end_time ]
[ , [ @owner_login_name = ] 'owner_login_name' ]
[ , [ @schedule_uid = ] schedule_uid OUTPUT ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @originating_server = ] server_name ] /* internal */
引数
[ @schedule_name = ] 'schedule_name'
スケジュールの名前です。 schedule_nameのデータ型は sysname で、既定値はありません。[ @enabled = ] enabled
スケジュールの現在の状態を示します。 enabledのデータ型は tinyint で、既定値は 1 (有効) です。 0 を指定した場合、スケジュールは無効になります。 スケジュールが無効な場合、このスケジュールでジョブは実行されません。[ @freq_type = ] freq_type
いつジョブを実行するかを示す値を指定します。 freq_typeのデータ型は int で、既定値は 0 です。次のいずれかの値を指定できます。値
説明
1
1 回
4
毎日。
8
毎週。
16
毎月
32
freq_interval を基準とした月単位
64
SQL Server エージェント サービスの起動時に実行
128
コンピューターがアイドル状態のときに実行
[ @freq_interval = ] freq_interval
ジョブを実行する日を指定します。 freq_interval のデータ型は int で、既定値は 1 です。この値は、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_subday_type = ] freq_subday_type
freq_subday_interval の単位を指定します。 freq_subday_typeのデータ型は int で、既定値は 0 です。次のいずれかの値を指定できます。値
説明 (単位)
0x1
指定した時間
0x2
秒
0x4
分
0x8
時間
[ @freq_subday_interval = ] freq_subday_interval
ジョブの実行間隔を示す freq_subday_type 期間の数を指定します freq_subday_intervalのデータ型は int で、既定値は 0 です。 注: 間隔は 10 秒より長くしてください。 freq_subday_type が 1 の場合、freq_subday_interval は無視されます。[ @freq_relative_interval = ] freq_relative_interval
freq_interval が 32 (月単位) の場合、freq_interval が、毎月どのような間隔で発生するかを示します。 freq_relative_intervalのデータ型は int で、既定値は 0 です。次のいずれかの値を指定できます。 freq_type が 32 でない場合、freq_relative_interval は無視されます。値
説明 (単位)
1
第 1 週
2
第 2 週
4
第 3 週
8
第 4 週
16
最終週
[ @freq_recurrence_factor = ] freq_recurrence_factor
ジョブを実行する週間隔または月間隔を指定します。 freq_recurrence_factor は freq_type が 8、16、または 32 の場合にのみ使用されます。 freq_recurrence_factorのデータ型は int で、既定値は 0 です。[ @active_start_date = ] active_start_date
ジョブの実行を開始できる日付を指定します。 active_start_dateのデータ型は int で、既定値は NULL です。既定値は今日の日付を示します。 日付の形式は YYYYMMDD です。 active_start_date が NULL でない場合、日付は 19900101 以降にする必要があります。スケジュールの作成後は、開始日が正しい日付であることを確認するようにしてください。 詳細については、「スケジュールの作成とジョブへのアタッチ」の「開始日のスケジュール設定」を参照してください。
週単位または月単位のスケジュールでは、エージェントは、active_start_date が過去の日付の場合は無視し、代わりに現在の日付を使用します。 SQL エージェントのスケジュールが sp_add_schedule を使用して作成されるときに、ジョブの実行が開始される日付を表す active_start_date パラメーターを指定することができます。 スケジュールの種類が週単位または月単位で、active_start_date パラメーターが過去の日付になっている場合、active_start_date パラメーターは無視され、現在の日付が active_start_date に使用されます。
[ @active_end_date = ] active_end_date
ジョブの実行を停止できる日付を指定します。 active_end_dateのデータ型は int で、既定値は 99991231 です。既定値は 9999 年 12 月 31 日を表します。 形式は YYYYMMDD です。[ @active_start_time = ] active_start_time
active_start_date と active_end_date の間にある任意の日にジョブの実行を開始する時刻を指定します。 active_start_timeのデータ型は int で、既定値は 000000 です。既定値は 12:00:00 AM を 24 時間形式で表したものです。HHMMSS 形式で入力する必要があります。[ @active_end_time = ] active_end_time
active_start_date と active_end_date の間にある任意の日にジョブの実行を終了する時刻を指定します。 active_end_timeのデータ型は int で、既定値は 235959 です。既定値は 11:59:59 PM を 24 時間形式で表したものです。HHMMSS 形式で入力する必要があります。[ @owner_login_name= ] 'owner_login_name'
スケジュールを所有するサーバー プリンシパルの名前を指定します。 owner_login_name のデータ型は sysname で、既定値は NULL です。既定値はスケジュールの所有者が作成者であることを示します。[ @schedule_uid= ] schedule_uidOUTPUT
スケジュールの一意識別子を指定します。 schedule_uid は uniqueidentifier 型の変数です。[ @schedule_id= ] schedule_idOUTPUT
スケジュールの識別子を指定します。 schedule_id は int 型の変数です。[ @originating_server= ] server_name
単に情報を示すためだけに特定されます。サポートされていません。将来の互換性は保証されません。
リターン コードの値
0 (成功) または 1 (失敗)
結果セット
なし
説明
SQL Server Management Studio は、ジョブを簡単に管理できるグラフィカルなツールです。ジョブのインフラストラクチャを作成し、管理するには、このツールを使用することをお勧めします。
権限
既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバーです。 他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。
使用例
A. スケジュールを作成する
次の例では、RunOnce というスケジュールを作成します。 スケジュールは 1 回のみ、スケジュールが作成された日の 23:30 に実行されます。
USE msdb ;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000 ;
GO
B. スケジュールを作成し、複数のジョブに適用する
次の例では、NightlyJobs というスケジュールを作成します。 このスケジュールを使用するジョブは、毎日、サーバーの時間が 01:00 になると実行されます。 この例では、スケジュールをジョブ BackupDatabase とジョブ RunReports にアタッチします。
注意
この例では、ジョブ BackupDatabase とジョブ RunReports が既に存在することを前提としています。
USE msdb ;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs' ,
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000 ;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs' ;
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs' ;
GO
関連項目
参照
SQL Server エージェントのストアド プロシージャ (Transact-SQL)
sp_add_jobschedule (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
sp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)