sp_add_jobschedule (Transact-SQL)

ジョブのスケジュールを作成します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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 ]

引数

  • [ @job_id= ] job_id
    スケジュールを追加するジョブの ID 番号を指定します。job_id のデータ型は uniqueidentifier で、既定値はありません。

  • [ @job_name= ] 'job_name'
    スケジュールを追加するジョブの名前を指定します。job_name のデータ型は nvarchar(128) で、既定値はありません。

    注意

    job_id または job_name のいずれかを指定する必要があります。両方を指定することはできません。

  • [ @name= ] 'name'
    スケジュールの名前を指定します。name のデータ型は nvarchar(128) で、既定値はありません。

  • [ @enabled= ] enabled_flag
    スケジュールの現在の状態を示します。enabled_flag のデータ型は tinyint で、既定値は 1 (有効) です。0 を指定した場合、スケジュールは無効になります。スケジュールが無効な場合は、ジョブは実行されません。

  • [ @freq_type= ] frequency_type
    いつジョブを実行するかを示す値を指定します。frequency_type のデータ型は int で、既定値は 0 です。有効値は次のとおりです。

    説明

    1

    一度だけ

    4

    毎日

    8

    毎週

    16

    毎月

    32

    frequency_interval. を基準とした月単位

    64

    SQL Server エージェント サービスの起動時に実行します。

    128

    コンピューターがアイドル状態のときに実行します。

  • [ @freq_interval= ] frequency_interval
    ジョブを実行する日を指定します。frequency_interval のデータ型は int で、既定値は 0 です。この値は、次の表に示すように frequency_type の値に応じて異なります。

    結果

    1 (1 回のみ)

    frequency_interval は使用されません。

    4 (毎日)

    frequency_interval に指定した日数ごとに実行。

    8 (毎週)

    frequency_interval には次の値を 1 つ以上指定できます (OR 論理演算子で結合します)。

    1 = 日曜日

    2 = 月曜日

    4 = 火曜日

    8 = 水曜日

    16 = 木曜日

    32 = 金曜日

    64 = 土曜日

    16 (毎月)

    毎月の frequency_interval で指定した日に実行。

    32 (月単位)

    frequency_interval には、次のいずれかの値を指定できます。

    1 = 日曜日

    2 = 月曜日

    3 = 火曜日

    4 = 水曜日

    5 = 木曜日

    6 = 金曜日

    7 = 土曜日

    8 = 日

    9 = 平日

    10 = 土日

    64 (SQL Server エージェント サービスの起動時)

    frequency_interval は使用されません。

    128

    frequency_interval は使用されません。

  • [ @freq_subday_type= ] frequency_subday_type
    frequency_subday_interval の単位を指定します。frequency_subday_type のデータ型は int で、既定値はありません。有効値は次のとおりです。

    説明 (単位)

    0x1

    指定した時間

    0x4

    0x8

    時間

  • [ @freq_subday_interval= ] frequency_subday_interval
    ジョブの実行間隔を示す frequency_subday_type 期間の数を指定します。frequency_subday_interval のデータ型は int で、既定値は 0 です。

  • [ @freq_relative_interval= ] frequency_relative_interval
    frequency_type が 32 (月単位) に設定されている場合は frequency_interval をさらに定義します。

    frequency_relative_interval のデータ型は int で、既定値はありません。有効値は次のとおりです。

    説明 (単位)

    1

    第 1

    2

    第 2

    4

    第 3

    8

    第 4

    16

    最終

    frequency_relative_interval は、相対的な間隔を示します。たとえば、frequency_relative_interval を 2 に設定し、frequency_type を 32 に設定し、さらに frequency_interval を 3 に設定した場合、スケジュールされたジョブは毎月第 2 火曜日に実行されます。

  • [ @freq_recurrence_factor= ] frequency_recurrence_factor
    ジョブを実行する週間隔または月間隔を指定します。frequency_recurrence_factor は frequency_type が 816、または 32 の場合にのみ使用されます。frequency_recurrence_factor のデータ型は int で、既定値は 0 です。

  • [ @active_start_date= ] active_start_date
    ジョブの実行を開始できる日付を指定します。active_start_date のデータ型は int で、既定値はありません。日付の形式は YYYYMMDD です。active_start_date が設定されている場合、日付は 19900101 以降にする必要があります。

    スケジュールの作成後は、開始日が正しい日付であることを確認するようにしてください。詳細については、「スケジュールの作成とジョブへのアタッチ」の「開始日のスケジュール設定」を参照してください。

  • [ @active_end_date= ] active_end_date
    ジョブの実行を停止できる日付を指定します。active_end_date のデータ型は int で、既定値はありません。日付の形式は YYYYMMDD です。

  • [ @active_start_time= ] active_start_time
    active_start_date と active_end_date の間の日で、ジョブの実行を開始する時刻を指定します。active_start_time のデータ型は int で、既定値はありません。時刻の形式は HHMMSS で、24 時間形式です。

  • [ **@active_end_time=**active_end_time
    active_start_date と active_end_date の間の日で、ジョブの実行を終了する時刻を指定します。active_end_time のデータ型は int で、既定値はありません。時刻の形式は HHMMSS で、24 時間形式です。

  • [ @schedule_id=schedule_idOUTPUT
    スケジュールの作成が成功したときにスケジュールに割り当てられるスケジュール ID 番号を指定します。schedule_id は int 型の出力変数で、既定値はありません。

  • [ @schedule_uid= ] schedule_uidOUTPUT
    スケジュールの一意識別子を指定します。schedule_uid は uniqueidentifier 型の変数です。

リターン コード値

成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。

結果セット

なし。

説明

ジョブ スケジュールはジョブとは別々に管理できます。スケジュールをジョブに追加するには、sp_add_schedule を使用してスケジュールを作成し、sp_attach_schedule を使用してジョブにスケジュールをアタッチします。

権限

既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバーです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

これらのロールの権限に関する詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。