2016-12-05 107 views
2

我有一种情况,即每天都有一份工作(工作A),每两天工作一次(工作B),另一项工作每周末工作(工作C)。我需要确保作业A在作业B之前运行。如果作业A没有正常运行,那么我不希望作业B运行。同样的事情适用于工作C.任何人有任何想法如何去做这件事?SQL服务器作业优先

感谢所有帮助

回答

0

我需要确保作业的作业B.之前如果作业A不运行适当的话,我不想在作业B运行运行。同样的道理也适用于工作C.

创建的所有作业A,B,C和安排只A..At工作A,成功事件结束工作,联系作业B像下面

EXEC dbo.sp_start_job N'Weekly销售数据备份';
GO

现在,同样的事情适用于作业C,呼吁作业B的成功事件作业C ..

我会去与这个approach..You也可以用插入的方式去成功,失败值放入表中并确保作业b或c在开始前读取这些值

1

我使用了一个叫做SQL哨兵产品做你正在尝试做的。 SQL Sentry具有许多其他高级监视和控制功能(如杀死挂起的作业,排列低优先级的作业等)。这里是他们的网站https://sentryone.com/platform/sql-server-performance-monitoring

这是从他们的advertising的一个报价:

19.链接和排队

难道你愿意,你可以在你的 维护窗口中找到短短几个小时,或需要按特定顺序运行作业? SQL Sentry Event Manager中的高级链功能可以确保 相互依存的作业以正确的顺序运行,而不会浪费时间 或资源。

链接

SQL哨兵事件管理器允许您链 SQL代理作业时,Windows任务,或Oracle乔布斯跨服务器。您可以在整个 企业中强制执行依赖关系并实现工作流程自动化,即使跨平台也是如此!图形链接界面 允许您使用变量(例如完成, 成功或失败)设计工作流程。更多详细信息可在User Guide中找到,但 需要几分钟时间观看我们的two video tutorials on chaining - 图形链接口和高级链接。