SQL:如何将作业设置为每年执行一次

时间:2013-06-17 07:06:00

标签: sql sql-server sql-server-2008

我在sql中创建了一个作业。 我的要求是这项工作应该在3月31日每年执行一次。在创建步骤时,我无法找到每年的频率发生。

任何人都可以告诉我如何实现这一目标。 提前谢谢。

2 个答案:

答案 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

Job Schedule Setup to run annually