sql server作业计划的结束日期是包含还是排除

Mar*_*ijn 4 sql-server jobs sql-server-agent scheduling sql-server-2005

我有一个时间表,每天做一次,每两个小时一次.我想为这个时间表设定一个结束日期,但我想知道它是包容性的还是排他性的.换句话说,如果我在3月26日设定结束日期,今天将是它运行的最后一天,或明天(今天是25月3日).

Ant*_*y K 11

如果您使用sysschedules_localserver_view视图查看msdb数据库,那么您可以看到计划以及结束日期(active_end_date = 3月26日)和结束时间(活动_end_time),这很可能是235959,这意味着任何作业已安排结束日期为3月26日,将于3月26日开始,第一天"错过"将是第27天.我可以从痛苦的经验中确认这一点,即在"作业 - 计划"对话框中设置结束日期,作业将在该日期运行.所以结束日期是包含的.

  • SQL 代理作业中的结束日期是**包括**。我已经通过创建将行添加到一些虚拟表的简单任务来证明这一点。它计划每两秒运行一次。结束日期是今天。行被*插入*。当结束日期设置为昨天时,*插入* 行已停止。我建议你自己检查一下。 (2认同)

Cod*_*ked 1

还需要考虑一个结束时间。任何在结束日期/时间之后运行的作业都不会运行。所以它实际上是排他性的。

来自MSDN

SQL Server 代理会自动禁用不再是最新的计划。如果您在 SQL Server 代理禁用计划后对其进行编辑,则必须显式重新启用它。在以下情况下,计划将被禁用:

它们被定义为按定期计划运行,并且结束日期已过。

早期版本的 SQL Server 在结束日期方面也存在一些问题。