sp_attach_schedule (Transact-SQL)
適用於:SQL Server
設定作業的排程。
語法
sp_attach_schedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
引數
[ @job_id = ] 'job_id'
加入排程之作業的作業標識碼。 @job_id為 uniqueidentifier,預設值為 NULL
。
必須指定@job_id或@job_name,但無法指定兩者。
[ @job_name = ] N'job_name'
加入排程之作業的名稱。 @job_name為 sysname,預設值為 NULL
。
必須指定@job_id或@job_name,但無法指定兩者。
[ @schedule_id = ] schedule_id
要為作業設定之排程的排程標識碼。 @schedule_id為 int,預設值為 NULL
。
必須指定@schedule_id或@schedule_name,但無法指定兩者。
[ @schedule_name = ] N'schedule_name'
要為作業設定的排程名稱。 @schedule_name為 sysname,預設值為 NULL
。
必須指定@schedule_id或@schedule_name,但無法指定兩者。
[ @automatic_post = ] automatic_post
@automatic_post為 bit,預設值為 1
。
備註
排程和作業必須擁有相同的擁有者。
您可以為多個作業設定排程。 作業可以在一個以上的排程上執行。
這個預存程式必須從 msdb
資料庫執行。
權限
此預存程式是由 db_owner 角色所擁有。 您可以授與 EXECUTE
任何用戶的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。
其他用戶必須在資料庫中獲得下列其中一個 SQL Server Agent 固定資料庫角色 msdb
:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
作業擁有者可以將作業附加至排程,並將作業與排程中斷連結,而不需要是排程擁有者。 不過,如果卸離將不讓排程離開,除非呼叫者是排程擁有者,否則無法刪除排程。
如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色。
SQL Server 會檢查使用者是否同時擁有作業和排程。
範例
下列範例會建立名為的 NightlyJobs
排程。 當伺服器上的時間是 01:00
時,每天執行使用此排程的作業。 這個範例會將排程附加至作業 BackupDatabase
和作業 RunReports
。
注意
此範例假設作業和作業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