询问者
Job 中的每月计划问题

问题
全部回复
-
我试过没问题啊。每12个月运行一次,如果active_start_date是现在,当然是12月1日运行。把active_start_date设置为12月1日之后,就是每年的1月1日运行了。
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'NewYear',
@enabled=1,
@freq_type=16,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=12,
@active_start_date=20151206,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959想不想时已是想,不如不想都不想。
-
USE [msdb] GO DECLARE @jobId uniqueidentifier, @name sysname; SET @name = '_16'; EXEC sp_add_job @job_name = @name, @job_id = @jobId OUTPUT; EXEC sp_add_jobschedule @job_id = @jobId, @name = @name, @freq_interval=1, @freq_type=16, @freq_recurrence_factor=12, @active_start_date=20140501 EXEC sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'; GO DECLARE @jobId uniqueidentifier, @name sysname; SET @name = '_32'; EXEC sp_add_job @job_name = @name, @job_id = @jobId OUTPUT; EXEC sp_add_jobschedule @job_id = @jobId, @name = @name, @freq_interval=8, @freq_relative_interval = 1, @freq_type=32, @freq_recurrence_factor=12, @active_start_date=20140501 EXEC sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'; GO /*-- dele EXEC sp_delete_job @job_name = N'_16' EXEC sp_delete_job @job_name = N'_32' --*/
执行这两个脚本创建两个 job, 看 next run 值,解释一下为什么两个的日期是这样的呢? 从计划的解释来说,都是每 12 个月的 1 号,开始日期相同,next run 应该相同吧