Adam J.R. Erickson Asked: 2010-04-15 10:44:21 +0800 CST2010-04-15 10:44:21 +0800 CST 2010-04-15 10:44:21 +0800 CST 您能否在之前的子计划完成后运行 SQL Server 维护子计划 772 我有一个维护计划来备份和清理旧数据。它有三个子计划,每个子计划都有自己的时间表。我可以将子任务 2 的计划设置为“子任务 1 完成后”吗? sql-server sql-server-2005 backup ssms maintenance 1 个回答 Voted Best Answer Sean Howat 2010-04-15T12:05:08+08:002010-04-15T12:05:08+08:00 是的,您应该能够,但以稍微迂回的方式。如果您转到 SQL Server 代理并查看作业,您会注意到这些都是您的维护计划的所有部分,都被分解为单独的任务。双击一个,然后转到“步骤”部分。请注意它是如何说“成功时”它说“退出工作报告成功”的?这可以更改为退出报告成功、退出报告失败或进入下一步。 现在回到作业属性的步骤部分,您应该能够添加一个新步骤。新步骤的类型可能默认设置为 T-SQL 脚本,这就是我们想要的。您设置的所有维护计划选项实际上只是运行 T-SQL 来完成工作。您甚至可以通过双击任务然后单击查看 T-SQL 来查看他们在 MaintenancePlan 设计器中使用的 T-SQL。 所以现在您可以看到维护计划实际上只是创建单独的 SQL Server 代理作业并运行 T-SQL 脚本(使用维护计划工具时以集成服务包的形式)来执行它们。如果您能想出自己的 T-SQL 脚本来进行备份和清理,那么您可以将它们安排在同一个作业下,并简单地告诉每个作业在完成后移动到下一步。 我不知道直接从 MaintenancePlan 设计器那里执行此操作的方法,因为它似乎只有一个小日历,您可以在其中设置作业运行的时间,但通过一些工作,您可以获得运行备份计划你想要的方式。以这种方式创建自定义作业最终可能与通过设计器略有不同,因为您没有使用集成服务,但它仍然非常有能力。 编辑: 实际上想想看,如果你愿意,你可以在设计器中复制它。您可以简单地将所有 3 个子计划组合成一个大子计划,而不是创建额外的子计划。这样,它们都将在同一个 SQL Server 代理作业下运行,您可以将它们设置为一个接一个地运行。同样,这样做有点迂回,但是每次您创建新的子计划时,它都会将其视为需要单独安排的全新工作。
是的,您应该能够,但以稍微迂回的方式。如果您转到 SQL Server 代理并查看作业,您会注意到这些都是您的维护计划的所有部分,都被分解为单独的任务。双击一个,然后转到“步骤”部分。请注意它是如何说“成功时”它说“退出工作报告成功”的?这可以更改为退出报告成功、退出报告失败或进入下一步。
现在回到作业属性的步骤部分,您应该能够添加一个新步骤。新步骤的类型可能默认设置为 T-SQL 脚本,这就是我们想要的。您设置的所有维护计划选项实际上只是运行 T-SQL 来完成工作。您甚至可以通过双击任务然后单击查看 T-SQL 来查看他们在 MaintenancePlan 设计器中使用的 T-SQL。
所以现在您可以看到维护计划实际上只是创建单独的 SQL Server 代理作业并运行 T-SQL 脚本(使用维护计划工具时以集成服务包的形式)来执行它们。如果您能想出自己的 T-SQL 脚本来进行备份和清理,那么您可以将它们安排在同一个作业下,并简单地告诉每个作业在完成后移动到下一步。
我不知道直接从 MaintenancePlan 设计器那里执行此操作的方法,因为它似乎只有一个小日历,您可以在其中设置作业运行的时间,但通过一些工作,您可以获得运行备份计划你想要的方式。以这种方式创建自定义作业最终可能与通过设计器略有不同,因为您没有使用集成服务,但它仍然非常有能力。
编辑:
实际上想想看,如果你愿意,你可以在设计器中复制它。您可以简单地将所有 3 个子计划组合成一个大子计划,而不是创建额外的子计划。这样,它们都将在同一个 SQL Server 代理作业下运行,您可以将它们设置为一个接一个地运行。同样,这样做有点迂回,但是每次您创建新的子计划时,它都会将其视为需要单独安排的全新工作。