sp_attach_schedule (Transact-SQL)
適用対象:SQL Server
ジョブのスケジュールを設定します。
構文
sp_attach_schedule
{ [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ,
{ [ @schedule_id = ] schedule_id
| [ @schedule_name = ] 'schedule_name' }
引数
[ @job_id = ] job_id
スケジュールが追加されるジョブのジョブ識別番号。 job_idは uniqueidentifier で、既定値は NULL です。
[ @job_name = ] 'job_name'
スケジュールが追加されるジョブの名前。 job_nameは sysname で、既定値は NULL です。
Note
job_idまたはjob_nameを指定する必要がありますが、両方を指定することはできません。
[ @schedule_id = ] schedule_id
ジョブに設定するスケジュールのスケジュール ID 番号。 schedule_idは int で、既定値は NULL です。
[ @schedule_name = ] 'schedule_name'
ジョブに設定するスケジュールの名前。 schedule_nameは sysname で、既定値は NULL です。
Note
schedule_idまたはschedule_nameを指定する必要がありますが、両方を指定することはできません。
解説
スケジュールとジョブの所有者は同じである必要があります。
スケジュールは複数のジョブに対して設定できます。 ジョブは、複数のスケジュールで実行できます。
このストアド プロシージャは 、msdb データベースから実行する必要があります。
アクセス許可
既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。 他のユーザーには、 SQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
ジョブ所有者は、スケジュール所有者である必要なく、ジョブをスケジュールにアタッチし、スケジュールからジョブをデタッチできることに注意してください。 ただし、呼び出し元がスケジュール所有者でない限り、デタッチによってジョブが残されない場合は、スケジュールを削除できません。
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
SQL Serverは、ユーザーがジョブとスケジュールの両方を所有しているかどうかを確認します。
例
次の例では、 という名前 NightlyJobs
のスケジュールを作成します。 このスケジュールを使用するジョブは、毎日、サーバーの時間が 01:00
になると実行されます。 この例では、スケジュールをジョブとジョブ BackupDatabase
にアタッチします RunReports
。
Note
この例では、ジョブとジョブ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
参照
sp_add_schedule (Transact-SQL)
sp_detach_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
フィードバック
フィードバックの送信と表示