sp_add_schedule (Transact-SQL)sp_add_schedule (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database (Managed Instance のみ) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

任意の数のジョブで使用できるスケジュールを作成します。Creates a schedule that can be used by any number of jobs.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
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 */  

引数Arguments

スケジュールの名前 [ @schedule_name = ] 'schedule_name' ます。[ @schedule_name = ] 'schedule_name' The name of the schedule. schedule_namesysnameであり、既定値はありません。schedule_name is sysname, with no default.

[ @enabled = ] enabled は、スケジュールの現在の状態を示します。[ @enabled = ] enabled Indicates the current status of the schedule. 有効になっているはtinyint,、既定値は1 (有効) です。enabled is tinyint, with a default of 1 (enabled). 0の場合、スケジュールは有効になりません。If 0, the schedule is not enabled. スケジュールが有効になっていない場合、このスケジュールでジョブは実行されません。When the schedule is not enabled, no jobs will run on this schedule.

ジョブがいつ実行されるかを示す値を [ @freq_type = ] freq_type します。[ @freq_type = ] freq_type A value indicating when a job is to be executed. freq_typeint,、既定値は0,、これらの値のいずれかを指定することができます。freq_type is int, with a default of 0, and can be one of these values.

ReplTest1Value [説明]Description
11 1 回。Once
44 毎日。Daily
88 毎週。Weekly
1616 毎月。Monthly
3232 毎月 ( freq_intervalを基準)Monthly, relative to freq_interval
6464 SQL エージェントサービスの開始時に実行するRun when SQL Agent service starts
128128 コンピューターがアイドル状態のときに実行する ( Azure SQL Database Managed Instanceではサポートされていません)Run when the computer is idle (not supported in Azure SQL Database Managed Instance)

ジョブを実行する曜日を [ @freq_interval = ] freq_interval します。[ @freq_interval = ] freq_interval The days that a job is executed. freq_intervalint,、既定値は1,、 freq_typeの値に依存します。freq_interval is int, with a default of 1, and depends on the value of freq_type.

Freq_typeの値Value of freq_type Freq_intervalへの影響Effect on freq_interval
1 (1 回)1 (once) freq_intervalは使用されていません。freq_interval is unused.
4 (毎日)4 (daily) Freq_interval日ごと。Every freq_interval days.
8 (毎週)8 (weekly) freq_intervalは次の1つまたは複数です (or 論理演算子と組み合わせて使用します)。freq_interval is one or more of the following (combined with an OR logical operator):

1 = 日曜日1 = Sunday

2 = 月曜日2 = Monday

4 = 火曜日4 = Tuesday

8 = 水曜日8 = Wednesday

16 = 木曜日16 = Thursday

32 = 金曜日32 = Friday

64 = 土曜日64 = Saturday
16 (毎月)16 (monthly) 月のfreq_interval日。On the freq_interval day of the month.
32 (月単位)32 (monthly relative) freq_intervalは次のいずれかです。freq_interval is one of the following:

1 = 日曜日1 = Sunday

2 = 月曜日2 = Monday

3 = 火曜日3 = Tuesday

4 = 水曜日4 = Wednesday

5 = 木曜日5 = Thursday

6 = 金曜日6 = Friday

7 = 土曜日7 = Saturday

8 = 日8 = Day

9 = 平日9 = Weekday

10 = 週末10 = Weekend day
64 (SQLServerAgent サービスの開始時)64 (when SQLServerAgent service starts) freq_intervalは使用されていません。freq_interval is unused.
128128 freq_intervalは使用されていません。freq_interval is unused.

[ @freq_subday_type = ] freq_subday_type freq_subday_intervalの単位を指定します。[ @freq_subday_type = ] freq_subday_type Specifies the units for freq_subday_interval. freq_subday_typeint,、既定値は0,、これらの値のいずれかを指定することができます。freq_subday_type is int, with a default of 0, and can be one of these values.

ReplTest1Value 説明 (単位)Description (unit)
0x10x1 指定された時間At the specified time
0x20x2 SecondsSeconds
0x40x4 MinutesMinutes
0x80x8 HoursHours

ジョブの各実行間に発生するfreq_subday_type期間の数を [ @freq_subday_interval = ] freq_subday_interval します。[ @freq_subday_interval = ] freq_subday_interval The number of freq_subday_type periods to occur between each execution of a job. freq_subday_intervalint,、既定値は0です。freq_subday_interval is int, with a default of 0. 注: 間隔は10秒より長くする必要があります。Note: Interval should be longer than 10 seconds. freq_subday_type1に等しい場合、 freq_subday_intervalは無視されます。freq_subday_interval is ignored in those cases where freq_subday_type is equal to 1.

freq_intervalが 32 (月単位) の場合、各月のfreq_intervalのジョブの発生を [ @freq_relative_interval = ] freq_relative_interval します。[ @freq_relative_interval = ] freq_relative_interval A job's occurrence of freq_interval in each month, if freq_interval is 32 (monthly relative). freq_relative_intervalint,、既定値は0,、これらの値のいずれかを指定することができます。freq_relative_interval is int, with a default of 0, and can be one of these values. freq_typeが32と等しくない場合、 freq_relative_intervalは無視されます。freq_relative_interval is ignored in those cases where freq_type is not equal to 32.

ReplTest1Value 説明 (単位)Description (unit)
11 FirstFirst
22 第 2 週Second
44 第 3 週Third
88 FourthFourth
1616 LastLast

スケジュールされたジョブの実行間隔 (週または月) を [ @freq_recurrence_factor = ] freq_recurrence_factor します。[ @freq_recurrence_factor = ] freq_recurrence_factor The number of weeks or months between the scheduled execution of a job. freq_recurrence_factorfreq_type816、または32の場合にのみ使用されます。freq_recurrence_factor is used only if freq_type is 8, 16, or 32. freq_recurrence_factorint,、既定値は0です。freq_recurrence_factor is int, with a default of 0.

ジョブの実行を開始できる日付を [ @active_start_date = ] active_start_date します。[ @active_start_date = ] active_start_date The date on which execution of a job can begin. active_start_dateのデータ型は intで、既定値は NULL です。これは今日の日付を示します。active_start_date is int, with a default of NULL, which indicates today's date. 日付の形式は YYYYMMDD です。The date is formatted as YYYYMMDD. Active_start_dateが NULL でない場合、日付は19900101以上である必要があります。If active_start_date is not NULL, the date must be greater than or equal to 19900101.

スケジュールを作成したら、開始日を確認し、正しい日付であることを確認します。After the schedule is created, review the start date and confirm that it is the correct date. 詳細については、「ジョブにスケジュールを作成してアタッチする」の「開始日のスケジュール設定」を参照してください。For more information, see the section "Scheduling Start Date" in Create and Attach Schedules to Jobs.

週単位または月単位のスケジュールでは、エージェントは active_start_date が過去の場合は無視し、代わりに現在の日付を使用します。For weekly or monthly schedules, the Agent ignores if active_start_date is in the past, and instead uses the current date. Sp_add_schedule を使用して SQL エージェントのスケジュールを作成する場合は、ジョブの実行が開始される日付 active_start_date パラメーターを指定するオプションがあります。When a SQL Agent schedule is created using sp_add_schedule there is an option to specify the parameter active_start_date that is the date that job execution will begin. スケジュールの種類が週単位または月単位で、active_start_date パラメーターが過去の日付に設定されている場合、active_start_date パラメーターは無視され、現在の日付が active_start_date に使用されます。If the schedule type is weekly or monthly and the active_start_date parameter is set to a date in the past, the active_start_date parameter is ignored and the current date will be used for active_start_date.

ジョブの実行を停止できる日付を [ @active_end_date = ] active_end_date します。[ @active_end_date = ] active_end_date The date on which execution of a job can stop. active_end_dateint,、既定値は99991231,、9999年12月31日を示します。active_end_date is int, with a default of 99991231, which indicates December 31, 9999. YYYYMMDD として書式設定されます。Formatted as YYYYMMDD.

active_start_dateactive_end_dateの間の任意の日にジョブの実行を開始する時刻を [ @active_start_time = ] active_start_time します。[ @active_start_time = ] active_start_time The time on any day between active_start_date and active_end_date to begin execution of a job. active_start_timeint,、既定値は000000,、12:00:00 A.M. を示すactive_start_time is int, with a default of 000000, which indicates 12:00:00 A.M. を 24 時間形式で表したものです。HHMMSS 形式で入力する必要があります。on a 24-hour clock, and must be entered using the form HHMMSS.

active_start_dateactive_end_dateの間の任意の日の時刻を [ @active_end_time = ] active_end_time して、ジョブの実行を終了します。[ @active_end_time = ] active_end_time The time on any day between active_start_date and active_end_date to end execution of a job. active_end_timeint,、既定値は235959,、11:59:59 pm を示すactive_end_time is int, with a default of 235959, which indicates 11:59:59 P.M. を 24 時間形式で表したものです。HHMMSS 形式で入力する必要があります。on a 24-hour clock, and must be entered using the form HHMMSS.

[ @owner_login_name = ] 'owner_login_name'、スケジュールを所有するサーバープリンシパルの名前を指定します。[ @owner_login_name = ] 'owner_login_name' The name of the server principal that owns the schedule. owner_login_namesysnameで、既定値は NULL です。これは、スケジュールが作成者によって所有されていることを示します。owner_login_name is sysname, with a default of NULL, which indicates that the schedule is owned by the creator.

スケジュールの一意の識別子を [ @schedule_uid = ] _schedule_uidOUTPUT します。[ @schedule_uid = ] _schedule_uidOUTPUT A unique identifier for the schedule. schedule_uidは、 uniqueidentifier型の変数です。schedule_uid is a variable of type uniqueidentifier.

スケジュールの識別子を [ @schedule_id = ] _schedule_idOUTPUT します。[ @schedule_id = ] _schedule_idOUTPUT An identifier for the schedule. schedule_idint型の変数です。schedule_id is a variable of type int.

[ @originating_server = ] server_name 単に情報を示すためだけに特定されます。Identified for informational purposes only. サポートされていません。Not supported. 将来の互換性は保証されません。Future compatibility is not guaranteed.[ @originating_server = ] server_name 単に情報を示すためだけに特定されます。Identified for informational purposes only. サポートされていません。Not supported. 将来の互換性は保証されません。Future compatibility is not guaranteed.

リターン コードの値Return Code Values

0 (成功) または1 (失敗)0 (success) or 1 (failure)

結果セットResult Sets

[InclusionThresholdSetting]None

RemarksRemarks

SQL Server Management StudioSQL Server Management Studio は、ジョブを簡単に管理できるグラフィカルなツールです。ジョブのインフラストラクチャを作成し、管理するには、このツールを使用することをお勧めします。provides an easy, graphical way to manage jobs, and is the recommended way to create and manage the job infrastructure.

アクセス許可Permissions

既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。By default, members of the sysadmin fixed server role can execute this stored procedure. 他のユーザーには、 SQL ServerSQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。Other users must be granted one of the following SQL ServerSQL Server Agent fixed database roles in the msdb database:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。For details about the permissions of these roles, see SQL Server Agent Fixed Database Roles.

使用例Examples

A.A. スケジュールを作成するCreating a schedule

次の例では、RunOnceという名前のスケジュールを作成します。The following example creates a schedule named RunOnce. スケジュールは 1 回のみ、スケジュールが作成された日の 23:30 に実行されます。The schedule runs one time, at 23:30 on the day that the schedule is created.

USE msdb ;  
GO  
  
EXEC dbo.sp_add_schedule  
    @schedule_name = N'RunOnce',  
    @freq_type = 1,  
    @active_start_time = 233000 ;  
  
GO  

b.B. スケジュールを作成し、複数のジョブにスケジュールをアタッチするCreating a schedule, attaching the schedule to multiple jobs

次の例では、NightlyJobsという名前のスケジュールを作成します。The following example creates a schedule named NightlyJobs. このスケジュールを使用するジョブは、毎日、サーバーの時間が 01:00 になると実行されます。Jobs that use this schedule execute every day when the time on the server is 01:00. この例では、ジョブ BackupDatabase とジョブ RunReportsにスケジュールをアタッチします。The example attaches the schedule to the job BackupDatabase and the job RunReports.

注意

この例では、ジョブ BackupDatabase とジョブ RunReports が既に存在していることを前提としています。This example assumes that the job BackupDatabase and the job RunReports already exist.

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  

参照See Also

ジョブにスケジュールを作成してアタッチ Create and Attach Schedules to Jobs
ジョブ のスケジュールを設定するSchedule a Job
スケジュールを作成 Create a Schedule
ストアドプロシージャ(transact-sql )の SQL Server エージェントSQL Server Agent Stored Procedures (Transact-SQL)
transact-sql ( の) sp_add_jobschedulesp_add_jobschedule (Transact-SQL)
transact-sql ( の) sp_update_schedulesp_update_schedule (Transact-SQL)
transact-sql ( の) sp_delete_schedulesp_delete_schedule (Transact-SQL)
transact-sql ( の) sp_help_schedulesp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)sp_attach_schedule (Transact-SQL)