在上一个子计划完成之后,您可以使SQL Server维护子计划运行吗?

我有一个维护计划来做备份和清理旧数据。 它有三个子计划,每个子计划都有自己的计划。 我可以将子任务2的时间表设置为“子任务1完成后”吗?

是的,你应该能够以一个稍微迂回的方式。 如果你去你的SQL Server代理并查看作业,你会发现这些都是你的维护计划的所有部分都分解成单独的任务。 双击一个,然后转到步骤部分。 注意它是如何说成功就说退出工作报告成功? 这可以更改为退出报告成功,退出报告失败,或者转到下一步。

现在回到“作业属性”的“步骤”部分,您应该可以添加新的步骤。 新步骤的Type可能默认设置为T-SQL脚本,这就是我们想要的。 您设置的所有维护计划选项实际上只是运行T-SQL来完成作业。 您甚至可以通过双击任务然后单击View T-SQL来查看他们在MaintenancePlandevise器中使用的T-SQL。

因此,现在您可以看到维护计划实际上只是创build单独的SQL Server代理作业并运行T-SQL脚本(以使用维护计划工具时的Integration Service包的forms)来执行它们。 如果您可以想出自己的T-SQL脚本来进行备份和清理,那么可以将它们安排在同一个作业下,并简单地告诉每个作业在完成后转到下一个步骤。

我不知道有什么办法可以直接从MaintenancePlandevise器中完成这项工作,因为它似乎有一个小日历,您可以在该日历中设置作业的运行时间,但只需要一点点工作,您就可以运行备份计划你想要的方式。 以这种方式创build自定义作业最终可能会比通过devise人员略有不同,因为您没有使用集成服务,但仍然非常有能力。

编辑:

事实上,如果你想的话,你可以想像一下,你可以在devise师内复制它。 您可以简单地将所有3个子分区组合成一个大的子分区,而不是创build额外的子分区。 这样,它们将全部运行在相同的SQL Server代理作业下,并且可以将它们设置为一个接一个地运行。 再次,这是一个迂回的做法,但每次你创build一个新的子计划,它把它视为一个全新的工作,需要分开安排。