sp_add_jobschedule创建作业调度

sp_add_jobschedule

创建作业调度。

语法

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_idjob_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_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在指定的时间
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_type816 32 时,才使用 freq_recurrence_factorfreq_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_dateactive_end_date 之间的任何一天开始执行作业的时间。active_start_time 的数据类型为 int,默认设置为 000000,该值表示 24 小时制的上午 12:00:00,并且必须使用格式 HHMMSS 进行输入。

[ @active_end_time = ] active_end_time

active_start_dateactive_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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用SQL Server Agent来定时执行存储过程。以下是一个示例脚本: ```sql USE [msdb] GO DECLARE @jobId BINARY(16) EXEC msdb.dbo.sp_add_job @job_name=N'MyJobName', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'This job executes my stored procedure', @category_name=N'[Uncategorized (Local)]', @owner_login_name=N'sa', @job_id = @jobId OUTPUT EXEC msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Execute SP', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_fail_action=2, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'EXEC dbo.MyStoredProcedure', @database_name=N'MyDatabase', @output_file_name=N'\\MyServer\MyShare\MyJobOutput.txt', @flags=0 EXEC msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'MyJobSchedule', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=1, @freq_subday_interval=0, @freq_relative_interval=0, @freq_recurrence_factor=0, @active_start_date=20220224, @active_end_date=99991231, @active_start_time=0, @active_end_time=235959 EXEC msdb.dbo.sp_add_jobserver @job_id=@jobId, @server_name=N'(local)' GO ``` 这个脚本创建了一个名为"MyJobName"的作业,该作业会执行名为"MyStoredProcedure"的存储过程,并且每天都会执行一次。你需要将"@command"参数中的存储过程名,"@database_name"参数中的数据库名以及"@freq_*"参数中的执行时间间隔修改为你的实际情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值