【发布时间】:2011-03-23 15:41:58
【问题描述】:
我有许多 SQLServer 代理计划作业,其中一个执行完整的数据库备份。我想在备份开始时禁用其他一些作业,并在备份完成后重新启用它们。这样做的正确方法是什么?我正在考虑将以下 tsql 命令之一添加到备份任务的第一步(以及相应的启用命令到最后一步),但我找不到哪个更好(或者可能有另一种方法)。
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE [Name] IN (....)
或多个EXEC dbo.sp_update_job?
谢谢。
【问题讨论】:
-
我认为您建议的方法没有任何问题。
-
那么你觉得哪一个更好呢?直接
UPDATE sysojobs或使用sp_update_job? -
如果/当备份失败时,您将如何处理已禁用的作业?
-
@DForck42:我倾向于 gbn 的 applocks 解决方案,但有一些陷阱 - 在第 1 步获得的锁似乎在第 2 步没有持有。
标签: sql-server sql-server-agent