更改 SQL Server 2005代理計劃的設置。
語法
|
sp_update_schedule { [ @schedule_id = ] schedule_id | [ @name = ] 'schedule_name' } [ , [ @new_name = ] 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 = ] 'owner_login_name' ] [ , [ @automatic_post =] automatic_post ] |
備註
所有使用該計劃的作業將立即使用新設置。但是,更改計劃不會停止當前正在運行的作業。
參數
[ @schedule_id = ] schedule_id
要修改的計劃的標識符。schedule_id 的數據類型爲 int,無默認值。必須指定 schedule_id 或 schedule_name。
[ @name = ] 'schedule_name'
要修改的計劃的名稱。schedule_name 的數據類型爲 sysname,無默認值。必須指定 schedule_id 或 schedule_name。
[ @new_name= ] new_name
計劃的新名稱。new_name 的數據類型爲 sysname,默認值爲 NULL。如果 new_name 爲 NULL,則不更改計劃名稱。
[ @enabled = ] enabled
指示計劃的當前狀態。enabled 的數據類型爲 tinyint,默認值爲 1(啓用)。如果爲 0,則不啓用計劃。如果不啓用計劃,則作業不會按此計劃運行。
[ @freq_type = ] freq_type
指示作業執行時間的值。freq_type 的數據類型爲 int,默認值爲 0,可以是下列值之一。
-
值
說明
1
一次
4
每天
8
每週
16
每月
32
每月,相對於 freq interval
64
SQLServerAgent 服務啓動時運行
128
計算機空閒時運行
[ @freq_interval = ] freq_interval
作業執行的天數。freq_interval 的數據類型爲 int,默認值爲 0,該值取決於 freq_type 的值。
-
freq_type 的值
對 freq_interval 的影響
1(一次)
freq_interval 未使用。
4(每天)
每 freq_interval 天。
8(每週)
freq_interval 是以下一個值或多個值(用邏輯運算符 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(SQLServerAgent 服務啓動時)
freq_interval 未使用。
128
freq_interval 未使用。
[ @freq_subday_type = ] freq_subday_type
指定 freq_subday_interval 的單位。freq_subday_type 的數據類型爲 int,默認值爲 0,可以是下列值之一。
-
值
說明(單位)
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_interval 爲 32(與“每月”選項相關)時,每月中作業的 freq_interval 的執行頻率。freq_relative_interval 的數據類型爲 int,默認值爲 0,可以是下列值之一。
-
值
說明(單位)
1
第一個
2
第二個
4
第三個
8
第四個
16
最後一個
[ @freq_recurrence_factor = ] freq_recurrence_factor
作業的兩次計劃執行之間的間隔週數或月數。只有 freq_type 爲 8、16 或 32 時,纔會使用freq_recurrence_factor。freq_recurrence_factor 的數據類型爲 int,默認值爲 0。
[ @active_start_date = ] active_start_date
可以開始執行作業的日期。active_start_date 的數據類型爲 int,默認值爲 NULL,指示當天的日期。日期格式爲 YYYYMMDD。如果 active_start_date 不爲 NULL,則日期必須大於或等於 19900101。
[ @active_end_date = ] active_end_date
停止執行作業的日期。active_end_date 的數據類型爲 int,默認值爲 99991231,指示 9999 年 12 月 31 日。格式爲 YYYYMMDD。
[ @active_start_time = ] active_start_time
在 active_start_date 和 active_end_date 之間的任何一天開始執行作業的時間。active_start_time 的數據類型爲 int,默認值爲 000000,指示 24 小時制的上午 12:00:00,並且必須使用 HHMMSS 格式輸入。
[ @active_end_time = ] active_end_time
在 active_start_date 和 active_end_date 之間任何一天停止執行作業的時間。active_end_time 的數據類型爲 int,默認值爲 235959,指示 24 小時制的晚上 11:59:59,必須使用 HHMMSS 的格式輸入。
[ @owner_login_name= ] 'owner_login_name']
擁有該計劃的服務器主體的名稱。owner_login_name 的數據類型爲 sysname,默認值爲 NULL,指示計劃由創建者擁有。
[ @automatic_post =] automatic_post
保留。
涉及到的表
--維護計劃涉及到的表,都屬於系統數據庫msdb
--維護計劃列表
select * from dbo.sysjobs
--維護計劃調度列表
select * from dbo.sysjobschedules
--維護計劃調度設置
select * from dbo.sysschedules
--一個維護計劃可能會多次修改調度,調度id值最大的是當前的調度設置
select max(b.schedule_id) from sysjobs a inner join sysjobschedules b
on a.job_id=b.job_id where a.name='維護計劃名稱'
舉例
--每12天的 20:39:00 執行。將從 2008-9-23 開始使用計劃。
exec sp_update_schedule 4,null,null,1,4,12,1,2,0,0,20080923,99991231,203900,235959
--每 3 周在星期六 的 20:39:00 執行。將從 2008-9-23 開始使用計劃。
exec sp_update_schedule 4,null,null,1,8,64,1,2,0,3,20080923,99991231,203900,235959
--每 3 周在星期六, 星期日的 20:39:00 執行。將從 2008-9-23 開始使用計劃。
Exec sp_update_schedule 4,null,null,1,8,65,1,2,0,3,20080923,99991231,203900,235959
--每 7 個月於最後一個 星期日 的 0:00:00 執行。將從 2008-9-22 開始使用計劃。
exec sp_update_schedule 4,null,null,1,32,1,1,2,16,7,20080922,99991231,0,235959
--每 7 個月的最後一個星期日 在 0:00:00 和 23:59:59 之間、每 3 小時執行。將從 2008-9-22 開始使用計劃。
exec sp_update_schedule 4,null,null,1,32,1,8,3,16,7,20080922,99991231,0,235959