sp_update_schedule (Transact-SQL)
更改 SQL Server 代理计划的设置。
语法
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
保留。
返回代码值
0(成功)或 1(失败)
注释
所有使用该计划的作业将立即使用新设置。但是,更改计划不会停止当前正在运行的作业。
权限
默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。其他用户必须被授予 msdb 数据库中下列 SQL Server 代理固定数据库角色的权限之一:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
有关这些角色的权限的详细信息,请参阅 SQL Server 代理固定数据库角色。
只有 sysadmin 的成员才可以修改其他用户拥有的计划。
示例
下面的示例将 NightlyJobs 计划的启用状态更改为 0,并将所有者设置为 terrid。
USE msdb ;
GO
EXEC dbo.sp_update_schedule
@name = 'NightlyJobs',
@enabled = 0,
@owner_login_name = 'terrid' ;
GO
更改历史记录
更新的内容 |
---|
开始日期参数包括有关创建了计划后确认开始日期的信息。 |
请参阅