创建作业调度。
sp_add_jobschedule [ @job_id = ] job_id, | [ @job_name = ] 'job_name',
[ @name = ] '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 ]
[ @jobid = ] job_id
将向其中添加调度的作业的作业标识号。job_id 的数据类型为 uniqueidentifier,默认设置为 NULL。
[ @job_name = ] 'job_name'
作业的名称,调度即添加到该作业中。job_name 的数据类型为 sysname,默认设置为 NULL。
<!--NOTE-->
说明 必须指定 job_id 或 job_name,但不能两个都指定。
<!--/NOTE-->
[ @name = ] 'name'
调度的名称。name 的数据类型为 sysname,没有默认设置。
[ @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_interval1(一次) | 未使用 freq_interval。 |
4(每天) | 每个 freq_interval 日。 |
8(每周) | freq_interval 为下面的一个或多个值(与 OR 逻辑运算符结合使用): 1 = 星期日 |
16(每月) | 每月的 freq_interval 日。 |
32(每月相对) | freq_interval 为下列值之一: 1 = 星期日 |
64(当 SQLServerAgent 服务启动时) | 未使用 freq_interval。 |
128 | 未使用 freq_interval。 |
[ @freq_subday_type = ] freq_subday_type
指定 freq_subday_interval 的单位。freq_subday_type 为 int 类型,其默认值为 0,且可以取下列值之一。
0x1 | 在指定的时间 |
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 进行输入。
0(成功)或 1(失败)
无
SQL Server 企业管理器提供易于使用的图形方法来管理作业,建议使用该方法创建和管理作业基本结构。
执行权限默认授予 public 角色。
此示例假设已经创建用来备份数据库的 NightlyBackup 作业。它将作业添加到名为 ScheduledBackup 的调度中,并且在每天上午 1:00 执行。
USE msdb
EXEC sp_add_jobschedule @job_name = 'NightlyBackup',
@name = 'ScheduledBackup',
@freq_type = 4, -- daily
@freq_interval = 1,
@active_start_time = 10000