sp_add_jobschedule (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
要加入排程的作業識別碼。 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 Agent 服務啟動時執行。
128
在電腦閒置時執行。
[ @freq_interval= ] frequency_interval
執行作業的天數。 frequency_interval 是 int,預設值是 0;它會隨著 frequency_type 的值而不同,如下表所示:值
效果
1 (一次)
frequency_interval 未使用。
4 (每天)
每隔 frequency_interval 天。
8 (每週)
frequency_interval 是下列一或多項 (以 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 Agent 服務啟動時)
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
第一個
2
第二個
4
第三個
8
第四個
16
最後一個
frequency_relative_interval 指出間隔的發生次數。 例如,如果將 frequency_relative_interval 設定為 2、將 frequency_type 設定為 32,並將 frequency_interval 設定為 3,排程作業將會在每個月的第二個星期二發生。
[ @freq_recurrence_factor= ] frequency_recurrence_factor
作業的各排程執行之間的週數或月數。 如果 frequency_type 是設為 8、16 或 32,便使用 frequency_recurrence_factor。 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,沒有預設值。 時間格式為使用 24 小時制的 HHMMSS。[ **@active_end_time=**active_end_time
在 active_start_date 和 active_end_date 之間任何一天結束執行作業的時間。 active_end_time 是 int,沒有預設值。 時間格式為使用 24 小時制的 HHMMSS。[ @schedule_id=schedule_idOUTPUT
成功建立排程時,指派給這個排程的排程識別碼。 schedule_id 是 int 類型的輸出變數,沒有預設值。[ @schedule_uid= ] schedule_uidOUTPUT
排程的唯一識別碼。 schedule_uid 是 uniqueidentifier 類型的變數。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
None
備註
現在,您可以在作業之外,獨立管理作業排程。 若要將排程加入作業中,請利用 sp_add_schedule 來建立排程,利用 sp_attach_schedule 將排程附加在作業上。
Permissions
依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。 其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。
請參閱
參考
SQL Server Agent 預存程序 (Transact-SQL)
sp_add_schedule (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
sp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)