sp_add_jobschedule (Transact-SQL)sp_add_jobschedule (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

SQL エージェントジョブのスケジュールを作成します。Creates a schedule for a SQL Agent job.

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

重要

Azure SQL Database Managed Instance では現在、すべてではありませんがほとんどの SQL Server エージェントの機能がサポートされています。On Azure SQL Database Managed Instance, most, but not all SQL Server Agent features are currently supported. 詳細については、「Azure SQL Database Managed Instance と SQL Server の T-SQL の相違点」を参照してください。See Azure SQL Database Managed Instance T-SQL differences from SQL Server for details.

構文Syntax

  
sp_add_jobschedule [ @job_id = ] job_id, | [ @job_name = ] 'job_name', [ @name = ] 'name'  
     [ , [ @enabled = ] enabled_flag ]  
     [ , [ @freq_type = ] frequency_type ]  
     [ , [ @freq_interval = ] frequency_interval ]  
     [ , [ @freq_subday_type = ] frequency_subday_type ]  
     [ , [ @freq_subday_interval = ] frequency_subday_interval ]  
     [ , [ @freq_relative_interval = ] frequency_relative_interval ]  
     [ , [ @freq_recurrence_factor = ] frequency_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 ]  
     [ , [ @schedule_id = ] schedule_id OUTPUT ]  

引数Arguments

[ @job_id = ] job_idスケジュールを追加するジョブの識別番号を指定します。[ @job_id = ] job_id Job identification number of the job to which the schedule is added. job_iduniqueidentifier,、既定値はありません。job_id is uniqueidentifier, with no default.

[ @job_name = ] 'job_name'スケジュールを追加するジョブの名前。[ @job_name = ] 'job_name' Name of the job to which the schedule is added. job_namenvarchar (128) ,、既定値はありません。job_name is nvarchar(128), with no default.

注意

Job_idまたはjob_nameのいずれかを指定する必要がありますが、両方を指定することはできません。Either job_id or job_name must be specified, but both cannot be specified.

[ @name = ] 'name'スケジュールの名前。[ @name = ] 'name' Name of the schedule. 名前nvarchar (128) ,、既定値はありません。name is nvarchar(128), with no default.

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

[ @freq_type = ] frequency_typeジョブがいつ実行されるかを示す値。[ @freq_type = ] frequency_type Value that indicates when the job is to be executed. frequency_typeint,、既定値は0,、値は次のいずれかを指定することができます。frequency_type is int, with a default of 0, and can be one of the following values:

Value 説明Description
11 1 回。Once
44 毎日。Daily
88 毎週。Weekly
1616 毎月。Monthly
3232 毎月、frequency_interval を基準としています。Monthly, relative to frequency_interval.
6464 エージェントサービスがSQL ServerSQL Server開始されたときに実行します。Run when the SQL ServerSQL Server Agent service starts.
128128 コンピューターがアイドル状態のときに実行します。Run when the computer is idle.

[ @freq_interval = ] frequency_intervalジョブが実行された日。[ @freq_interval = ] frequency_interval Day that the job is executed. frequency_intervalint,、既定値は 0,、次の表に示すように、 frequency_typeの値に依存します。frequency_interval is int, with a default of 0, and depends on the value of frequency_type as indicated in the following table:

Value 効果Effect
1 (1 回)1 (once) frequency_intervalは使用されていません。frequency_interval is unused.
4 (毎日)4 (daily) Frequency_interval日ごと。Every frequency_interval days.
8 (毎週)8 (weekly) frequency_intervalは、or 論理演算子と組み合わせた次の1つまたは複数です。frequency_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) 月のfrequency_interval日。On the frequency_interval day of the month.
32 (月単位)32 (monthly relative) frequency_intervalは次のいずれかです。frequency_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 (エージェントサービスSQL ServerSQL Serverが開始されたとき)64 (when the SQL ServerSQL Server Agent service starts) frequency_intervalは使用されていません。frequency_interval is unused.
128128 frequency_intervalは使用されていません。frequency_interval is unused.

[ @freq_subday_type = ] frequency_subday_typeFrequency_subday_intervalの単位を指定します。[ @freq_subday_type = ] frequency_subday_type Specifies the units for frequency_subday_interval. frequency_subday_typeint,、既定値はありません次の値のいずれかを指定することができます。frequency_subday_type is int, with no default, and can be one of the following values:

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

[ @freq_subday_interval = ] frequency_subday_intervalジョブの各実行間に発生するfrequency_subday_type期間の数。[ @freq_subday_interval = ] frequency_subday_interval Number of frequency_subday_type periods to occur between each execution of the job. frequency_subday_intervalint,、既定値は0です。frequency_subday_interval is int, with a default of 0.

[ @freq_relative_interval = ] frequency_relative_intervalFrequency_type32 (月単位) に設定されている場合は、 frequency_intervalをさらに定義します。[ @freq_relative_interval = ] frequency_relative_interval Further defines the frequency_interval when frequency_type is set to 32 (monthly relative).

frequency_relative_intervalint,、既定値はありません次の値のいずれかを指定することができます。frequency_relative_interval is int, with no default, and can be one of the following values:

Value 説明 (単位)Description (unit)
11 FirstFirst
22 第 2 週Second
44 サードパーティThird
88 4 番目Fourth
1616 LastLast

frequency_relative_intervalは、間隔の発生を示します。frequency_relative_interval indicates the occurrence of the interval. たとえば、 frequency_relative_interval2に設定し、 frequency_type32に設定し、 frequency_interval3に設定した場合、スケジュールされたジョブは毎月第2火曜日に発生します。For example, if frequency_relative_interval is set to 2, frequency_type is set to 32, and frequency_interval is set to 3, the scheduled job would occur on the second Tuesday of each month.

[ @freq_recurrence_factor = ] frequency_recurrence_factorスケジュールされたジョブの実行間隔 (週単位または月単位)。[ @freq_recurrence_factor = ] frequency_recurrence_factor Number of weeks or months between the scheduled execution of the job. frequency_recurrence_factorは、 frequency_type816、または32に設定されている場合にのみ使用されます。frequency_recurrence_factor is used only if frequency_type is set to 8, 16, or 32. frequency_recurrence_factorint,、既定値は0です。frequency_recurrence_factor is int, with a default of 0.

[ @active_start_date = ] active_start_dateジョブの実行を開始できる日付。[ @active_start_date = ] active_start_date Date on which job execution can begin. active_start_dateint,、既定値はありません。active_start_date is int, with no default. 日付の形式は YYYYMMDD です。The date is formatted as YYYYMMDD. Active_start_dateが設定されている場合、日付は19900101以上である必要があります。If active_start_date is set, 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_end_date = ] active_end_dateジョブの実行を停止できる日付。[ @active_end_date = ] active_end_date Date on which job execution can stop. active_end_dateint,、既定値はありません。active_end_date is int, with no default. 日付の形式は YYYYMMDD です。The date is formatted as YYYYMMDD.

[ @active_start_time = ] active_start_timeActive_start_dateactive_end_dateの間の任意の日にジョブの実行を開始する時刻。[ @active_start_time = ] active_start_time Time on any day between active_start_date and active_end_date to begin job execution. active_start_timeint,、既定値はありません。active_start_time is int, with no default. 時刻は、24時間制の HHMMSS 形式に設定されます。The time is formatted as HHMMSS on a 24-hour clock.

[ @active_end_time = active_end_time_Active_start_dateactive_end_dateの間の任意の日にジョブの実行を終了する時刻。[ @active_end_time = active_end_time_ Time on any day between active_start_date and active_end_date to end job execution. active_end_timeint,、既定値はありません。active_end_time is int, with no default. 時刻は、24時間制の HHMMSS 形式に設定されます。The time is formatted as HHMMSS on a 24-hour clock.

[ @schedule_id = schedule_idOUTPUTスケジュールが正常に作成された場合に、スケジュールに割り当てられた識別番号を指定します。[ @schedule_id = schedule_idOUTPUT Schedule identification number assigned to the schedule if it is created successfully. schedule_idint型の出力変数で、既定値はありません。schedule_id is an output variable of type int, with no default.

[ @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.

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

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

結果セットResult Sets

なしNone

コメントRemarks

ジョブスケジュールをジョブとは別に管理できるようになりました。Job schedules can now be managed independently of jobs. ジョブにスケジュールを追加するには、 sp_add_scheduleを使用してスケジュールを作成し、 sp_attach_scheduleを使用してスケジュールをジョブにアタッチします。To add a schedule to a job, use sp_add_schedule to create the schedule and sp_attach_schedule to attach the schedule to a job.

アクセス許可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.

Example

次の例では、毎週土曜日SaturdayReportsの 2:00 AM に実行するジョブスケジュールをに割り当てます。The following example assigns a job schedule to SaturdayReports which will execute every Saturday at 2:00 AM.

EXEC msdb.dbo.sp_add_jobschedule 
        @job_name = N'SaturdayReports', -- Job name
        @name = N'Weekly_Sat_2AM',  -- Schedule name
        @freq_type = 8, -- Weekly
        @freq_interval = 64, -- Saturday
        @freq_recurrence_factor = 1, -- every week
        @active_start_time = 20000 -- 2:00 AM

関連項目See Also

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