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 代理服务启动时运行。
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 代理服务启动时)
不使用 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,无默认值。 时间格式为 HHMMSS,采用 24 小时制。[ **@active_end_time=**active_end_time
在 active_start_date 和 active_end_date 之间的任意日期停止执行作业的时间。 active_end_time 的数据类型为 int,无默认值。 时间格式为 HHMMSS,采用 24 小时制。[ @schedule_id=schedule_idOUTPUT
成功创建计划时分配给计划的计划标识号。 schedule_id 是 int 类型的输出变量,无默认值。[ @schedule_uid= ] schedule_uidOUTPUT
计划的唯一标识符。 schedule_uid 是类型为 uniqueidentifier 的变量。
返回代码值
0(成功)或 1(失败)
结果集
无
注释
作业计划现在可以独立于作业进行管理。 若要向作业中添加计划,请使用 sp_add_schedule 创建计划,然后使用 sp_attach_schedule 将该计划附加到作业。
权限
默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。 其他用户必须被授予 msdb 数据库中下列 SQL Server 代理固定数据库角色的权限之一:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
有关这些角色的权限的详细信息,请参阅 SQL Server 代理固定数据库角色。
请参阅
参考
SQL Server 代理存储过程 (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)