我在sql中创建了一个作业。 我的要求是这项工作应该在3月31日每年执行一次。在创建步骤时,我无法找到每年的频率发生。
任何人都可以告诉我如何实现这一目标。 提前谢谢。
答案 0 :(得分:2)
没有这样的option - 您必须安排它在每个月的31日运行。然后,作为第一步,检测它是否不是行军的第31个并导致作业提前完成。
我通常会将这些步骤写成明显的错误,并使用它来控制作业的流程 - 例如:
IF DATEPART(month,CURRENT_TIMESTAMP) != 3
BEGIN
EXEC('select * from nonexistenttable')
END
答案 1 :(得分:2)
对于遇到这种情况的其他任何人,您可以设置一个在特定日期滚动运行的工作,在这种情况下,每3月31日每12个月。
频率不足 - 将当天设置为每12个月中的第31天。 在持续时间内 - 将开始日期设置为3月31日,没有结束日期。
sp_add_jobschedule [ @job_id = ] job_id, | [ @job_name = ] 'job_name'
, @freq_type = 16
, @freq_interval = 1
, @freq_recurrence_factor = 12
, @active_start_date = 20180331
或