我有许多 SQLServer 代理计划作业,其中一个执行完整的数据库备份。我想在备份开始时禁用一些其他作业,并在备份完成后重新启用它们。这样做的正确方法是什么?我正在考虑将以下 tsql 命令之一添加到备份任务的第一步(以及将相应的启用命令添加到最后一步),但我找不到哪个更好(或者可能有另一种方法)。
UPDATE MSDB.dbo.sysjobs
SET Enabled = 0
WHERE [Name] IN (....)
或多个
EXEC dbo.sp_update_job
?谢谢。
最佳答案
你必须运行 EXEC dbo.sp_update_job
因为你不能直接更新系统表(虽然我不确定 sysjobs 是否仍然算作系统表 Mitch 说它可以更新)
我会考虑使用 sp_getapplock and sp_releaseapplock在不实际更新工作的情况下“锁定”其他工作。
关于sql-server - 禁用/启用 SQLServer 代理作业的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5407817/