sp_update_schedule (Transact-SQL)
適用対象:SQL Server
SQL Server エージェント スケジュールの設定を変更します。
構文
sp_update_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @name = ] N'name' ]
[ , [ @new_name = ] N'new_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 = ] N'owner_login_name' ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
引数
[ @schedule_id = ] schedule_id
変更するスケジュールの識別子を指定します。 @schedule_idは int で、既定値は NULL
.
@schedule_idまたは@nameを指定する必要があります。
[ @name = ] N'name'
変更するスケジュールの名前。 @nameは sysname で、既定値は NULL
.
@schedule_idまたは@nameを指定する必要があります。
[ @new_name = ] N'new_name'
スケジュールの新しい名前。 @new_nameは sysname で、既定値は NULL
. @new_nameが NULL の場合、スケジュールの名前は変更されません。
[ @enabled = ] が有効
スケジュールの現在の状態を示します。 @enabledは tinyint で、既定値は 1
(有効) です。 場合 0
、スケジュールが有効になっていません。 スケジュールが有効になっていない場合、このスケジュールではジョブは実行されません。
[ @freq_type = ] freq_type
ジョブを実行するタイミングを示す値。 @freq_typeは int であり、これらの値のいずれかになります。
Value | 説明 |
---|---|
1 |
1 回。 |
4 |
毎日 |
8 |
週単位 |
16 |
月単位 |
32 |
月単位(@freq_intervalに対する 相対値) |
64 |
SQL Server エージェント サービスの起動時に実行する |
128 |
コンピューターがアイドル状態のときに実行する |
[ @freq_interval = ] freq_interval
ジョブが実行される日数。 @freq_intervalは int で、既定値は 、次の0
表に示すように@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 (SQL Server エージェント サービスの起動時) |
@freq_intervalは使用されません。 |
128 |
@freq_intervalは使用されません。 |
[ @freq_subday_type = ] freq_subday_type
@freq_subday_intervalの単位を指定します。 @freq_subday_typeは int であり、これらの値のいずれかになります。
Value | 説明 (単位) |
---|---|
0x1 |
指定した時刻 |
0x2 |
秒 |
0x4 |
分 |
0x8 |
時間 |
[ @freq_subday_interval = ] freq_subday_interval
ジョブの 各実行の間に発生する@freq_subday_type 期間の数。 @freq_subday_intervalは int で、既定値は 0
.
[ @freq_relative_interval = ] freq_relative_interval
さらに、@freq_typeが (毎月の相対) に設定されている場合の@freq_intervalを32
定義します。
@freq_relative_intervalは int であり、これらの値のいずれかになります。
Value | 説明 (単位) |
---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
4 番目 |
16 |
末尾 |
@freq_relative_intervalは、間隔の発生を示します。 たとえば、@freq_relative_intervalが 、@freq_typeに設定2
32
され、@freq_intervalが設定3
されている場合、スケジュールされたジョブは毎月第 2 火曜日に実行されます。
[ @freq_recurrence_factor = ] freq_recurrence_factor
ジョブのスケジュールされた実行の間の週数または月数。 @freq_recurrence_factorは int で、既定値は 0
. @freq_recurrence_factorは、@freq_typeが 、16
または 32
> に8
設定されている場合にのみ使用されます。
[ @active_start_date = ] active_start_date
ジョブの実行を開始できる日付。 @active_start_dateは int で、既定値は NULL
. 日付は次のように yyyyMMdd
書式設定されます。 @active_start_dateが設定されている場合、日付は次の値以上19900101
である必要があります。
スケジュールが作成されたら、開始日を確認し、正しい日付であることを確認します。 詳細については、「スケジュールを作成してジョブにアタッチする」の「開始日のスケジュール設定」セクションを参照してください。
[ @active_end_date = ] active_end_date
ジョブの実行を停止できる日付。 @active_end_dateは int で、既定値は 99991231
. 日付は次のように yyyyMMdd
書式設定されます。
[ @active_start_time = ] active_start_time
ジョブの実行を開始する@active_start_dateから@active_end_dateまでの任意の日の時刻。 @active_start_timeは int で、既定値は 000000
. 時刻は 24 時間制で HHmmss
書式設定されます。
[ @active_end_time = ] active_end_time
ジョブの実行を終了するactive_start_dateから@active_end_dateまでの任意の日の時刻。 @active_end_timeは int で、既定値は 235959
. 時刻は 24 時間制で HHmmss
書式設定されます。
[ @owner_login_name = ] N'owner_login_name'
スケジュールを所有するサーバー プリンシパルの名前。 @owner_login_nameは sysname で、既定値はNULL
作成者がスケジュールを所有していることを示します。
[ @automatic_post = ] automatic_post
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
スケジュールを使用するすべてのジョブは、すぐに新しい設定を使用します。 ただし、スケジュールを変更しても、現在実行中のジョブは停止しません。
アクセス許可
このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE
できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
他のユーザーには、データベース内の固定データベース ロールSQL Server エージェント次のいずれかを付与するmsdb
必要があります。
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
sysadmin のメンバーのみが、別のユーザーが所有するスケジュールを変更できます。
例
次の例では、スケジュールの有効な状態をNightlyJobs
0
変更し、所有者terrid
を .
USE msdb;
GO
EXEC dbo.sp_update_schedule
@name = 'NightlyJobs',
@enabled = 0,
@owner_login_name = 'terrid';
GO
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示