您的位置:首页 > 数据库 > SQL

Sql Server 2005 维护计划 调度修改(转)

2011-03-17 10:14 134 查看
更改 SQL Server 2005代理计划的设置。
转自 http://ghtmy003.blog.163.com/blog/static/35739266201062693431115/


语法
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 ]


[b]备注
[/b]
[b]所有使用该计划的作业将立即使用新设置。但是,更改计划不会停止当前正在运行的作业。[/b]
[b]

[b]参数
[/b][/b]
[b][b][ @schedule_id = ] schedule_id [/b][/b]
[b][b]要修改的计划的标识符。schedule_id 的数据类型为 int,无默认值。必须指定 schedule_id 或 schedule_name。[/b][/b]
[b][b][ @name = ] 'schedule_name' [/b][/b]
[b][b]要修改的计划的名称。schedule_name 的数据类型为 sysname,无默认值。必须指定 schedule_id 或 schedule_name。[/b][/b]
[b][b][ @new_name= ] new_name [/b][/b]
[b][b]计划的新名称。new_name 的数据类型为 sysname,默认值为 NULL。如果 new_name 为 NULL,则不更改计划名称。[/b][/b]
[b][b][ @enabled = ] enabled [/b][/b]
[b][b]指示计划的当前状态。enabled 的数据类型为 tinyint,默认值为 1(启用)。如果为 0,则不启用计划。如果不启用计划,则作业不会按此计划运行。[/b][/b]
[b][b][ @freq_type = ] freq_type [/b][/b]
[b][b]指示作业执行时间的值。freq_type 的数据类型为 int,默认值为 0,可以是下列值之一。[/b][/b]


说明
1
一次
4
每天
8
每周
16
每月
32
每月,相对于 freq interval
64
SQLServerAgent 服务启动时运行
128
计算机空闲时运行
[b][b][ @freq_interval = ] freq_interval [/b][/b]
[b][b]作业执行的天数。freq_interval 的数据类型为 int,默认值为 0,该值取决于 freq_type 的值。[/b][/b]

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 未使用。
[b][b][ @freq_subday_type = ] freq_subday_type [/b][/b]
[b][b]指定 freq_subday_interval 的单位。freq_subday_type 的数据类型为 int,默认值为 0,可以是下列值之一。[/b][/b]


说明(单位)
0x1
在指定的时间
0x2

0x4
分钟
0x8
小时
[b][b][ @freq_subday_interval = ] freq_subday_interval [/b][/b]
[b][b]作业的每次执行之间间隔的 freq_subday_type 周期数。freq_subday_interval 的数据类型为 int,默认值为 0。[/b][/b]
[b][b][ @freq_relative_interval = ] freq_relative_interval [/b][/b]
[b][b]freq_interval 为 32(与“每月”选项相关)时,每月中作业的 freq_interval 的执行频率。freq_relative_interval 的数据类型为 int,默认值为 0,可以是下列值之一。[/b][/b]


说明(单位)
1
第一个
2
第二个
4
第三个
8
第四个
16
最后一个
[b][b][ @freq_recurrence_factor = ] freq_recurrence_factor [/b][/b]
[b][b]作业的两次计划执行之间的间隔周数或月数。只有 freq_type 为 8、16 或 32 时,才会使用freq_recurrence_factor。freq_recurrence_factor 的数据类型为 int,默认值为 0。[/b][/b]
[b][b][ @active_start_date = ] active_start_date [/b][/b]
[b][b]可以开始执行作业的日期。active_start_date 的数据类型为 int,默认值为 NULL,指示当天的日期。日期格式为 YYYYMMDD。如果 active_start_date 不为 NULL,则日期必须大于或等于 19900101。[/b][/b]
[b][b][ @active_end_date = ] active_end_date [/b][/b]
[b][b]停止执行作业的日期。active_end_date 的数据类型为 int,默认值为 99991231,指示 9999 年 12 月 31 日。格式为 YYYYMMDD。[/b][/b]
[b][b][ @active_start_time = ] active_start_time [/b][/b]
[b][b]在 active_start_date 和 active_end_date 之间的任何一天开始执行作业的时间。active_start_time 的数据类型为 int,默认值为 000000,指示 24 小时制的上午 12:00:00,并且必须使用 HHMMSS 格式输入。[/b][/b]
[b][b][ @active_end_time = ] active_end_time [/b][/b]
[b][b]在 active_start_date 和 active_end_date 之间任何一天停止执行作业的时间。active_end_time 的数据类型为 int,默认值为 235959,指示 24 小时制的晚上 11:59:59,必须使用 HHMMSS 的格式输入。[/b][/b]
[b][b][ @owner_login_name= ] 'owner_login_name'] [/b][/b]
[b][b]拥有该计划的服务器主体的名称。owner_login_name 的数据类型为 sysname,默认值为 NULL,指示计划由创建者拥有。[/b][/b]
[b][b][ @automatic_post =] automatic_post [/b][/b]
[b][b]保留。[/b][/b]
[b][b]

[b]涉及到的表
[/b][/b][/b]
[b][/b]
[b][/b]
[b][b][b]--维护计划涉及到的表,都属于系统数据库msdb[/b][/b][/b]
[b][b][b]--维护计划列表[/b][/b][/b]
[b][b][b]select * from dbo.sysjobs[/b][/b][/b]
[b][b][b]--维护计划调度列表[/b][/b][/b]
[b][b][b]select * from dbo.sysjobschedules[/b][/b][/b]
[b][b][b]--维护计划调度设置[/b][/b][/b]
[b][b][b]select * from dbo.sysschedules[/b][/b][/b]
[b][/b]
[b][b][b]--一个维护计划可能会多次修改调度,调度id值最大的是当前的调度设置[/b][/b][/b]
[b][b][b]select max(b.schedule_id) from sysjobs a inner join sysjobschedules b[/b][/b][/b]
[b][b][b]on a.job_id=b.job_id where a.name='维护计划名称'[/b][/b][/b]
[b][/b]
[b][b][b]

[b]举例
[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]--每12天的 20:39:00 执行。将从 2008-9-23 开始使用计划。[/b][/b][/b][/b]
[b][b][b][b]exec sp_update_schedule 4,null,null,1,4,12,1,2,0,0,20080923,99991231,203900,235959[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]

[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]--每 3 周在星期六 的 20:39:00 执行。将从 2008-9-23 开始使用计划。[/b][/b][/b][/b]
[b][b][b][b]exec sp_update_schedule 4,null,null,1,8,64,1,2,0,3,20080923,99991231,203900,235959[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]--每 3 周在星期六, 星期日的 20:39:00 执行。将从 2008-9-23 开始使用计划。[/b][/b][/b][/b]
[b][b][b][b]Exec sp_update_schedule 4,null,null,1,8,65,1,2,0,3,20080923,99991231,203900,235959[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]--每 7 个月于最后一个 星期日 的 0:00:00 执行。将从 2008-9-22 开始使用计划。[/b][/b][/b][/b]
[b][b][b][b]exec sp_update_schedule 4,null,null,1,32,1,1,2,16,7,20080922,99991231,0,235959[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]

[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]--每 7 个月的最后一个星期日 在 0:00:00 和 23:59:59 之间、每 3 小时执行。将从 2008-9-22 开始使用计划。[/b][/b][/b][/b]
[b][b][b][b]exec sp_update_schedule 4,null,null,1,32,1,8,3,16,7,20080922,99991231,0,235959[/b][/b][/b][/b]
[b][b][/b][/b]
[b][b][b][b]

[/b][/b][/b][/b]
[b][b][/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: