sp_attach_schedule (Transact-SQL)

適用於:SQL Server

設定作業的排程。

Transact-SQL 語法慣例

語法

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

注意

此範例假設作業和作業BackupDatabaseRunReports已經存在。

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