Tsql 在特定时间停止重复作业

Tsql 在特定时间停止重复作业,tsql,sql-job,sql-agent,Tsql,Sql Job,Sql Agent,我们的SQL数据库上有一个作业,它将永远定期运行。 在预定义的维护期间,我们希望此作业在设定的时间内停止(例如12小时),然后重新启动定期计划 我们尝试使用一个单独的作业在预定义的时间内禁用它,另一个作业启用它。这很管用,但不是很整洁 是否有更好的方法只涉及作业本身?在某些服务数据库或MSDB(开始日期、结束日期、说明等)中创建“维护计划”表。让作业的第一步检查当前日期时间是否在维护期内。如果是这样,什么也不做。在一些服务数据库或MSDB(开始日期、结束日期、说明等)中创建一个“维护计划”表。让

我们的SQL数据库上有一个作业,它将永远定期运行。 在预定义的维护期间,我们希望此作业在设定的时间内停止(例如12小时),然后重新启动定期计划

我们尝试使用一个单独的作业在预定义的时间内禁用它,另一个作业启用它。这很管用,但不是很整洁


是否有更好的方法只涉及作业本身?

在某些服务数据库或MSDB(开始日期、结束日期、说明等)中创建“维护计划”表。让作业的第一步检查当前日期时间是否在维护期内。如果是这样,什么也不做。

在一些服务数据库或MSDB(开始日期、结束日期、说明等)中创建一个“维护计划”表。让作业的第一步检查当前日期时间是否在维护期内。如果是这样,什么也不做。

如果会话或事务与维护过程关联,则可以使用应用程序锁让常规作业等待,或者在维护过程中尝试运行时终止

使用锁定机制可以更好地控制流程,例如,常规作业可以在步骤之间释放和重新获取锁,并在维护流程启动时等待(或终止)。或者,维护过程可以等待常规作业终止(或到达适当的检查点),然后再继续


有关更多信息,请参阅。

如果会话或事务与维护过程关联,则可以使用应用程序锁让常规作业等待,或在维护过程中尝试运行时终止

使用锁定机制可以更好地控制流程,例如,常规作业可以在步骤之间释放和重新获取锁,并在维护流程启动时等待(或终止)。或者,维护过程可以等待常规作业终止(或到达适当的检查点),然后再继续

有关更多信息,请参阅