sql-server - 禁用/启用 SQLServer 代理作业的正确方法

标签 sql-server sql-server-agent

我有许多 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/

相关文章:

c# - 如何从代码中区分 MySQL 和 MS SQL 数据库?

sql-server - 本地计算机上的 MSSQLSERVER 服务启动然后停止。某些服务自动停止

sql-server - SQL Agent作业错误如何处理?

SQL Server 代理未报告因 PowerShell 脚本中未捕获的异常而导致的失败

java - Glassfish 4 的信息日志

c# - 一段时间内 foreach 循环的奇怪行为 READ()

json - SQL Server 2016 SSMS Json 格式

sql - 如何使用 SQL 创建多个存储过程

sql-server - 如何备份SQL Server代理作业?

SSIS 包未从 SQL 代理作业执行