【发布时间】:2019-08-29 16:14:49
【问题描述】:
我对运行 SQL 服务器比较陌生,需要一些帮助来完成我刚刚完成的任务。
我需要更新很多 SQL 代理作业,但不是全部。我只需要更新名称中包含特定单词的名称(例如“%Test%”)。 我需要在其中设置 2 项:重试次数(至 2 次)和重试间隔(至 10 分钟)。
因为这是一个生产服务器,我不能真正安装任何第三方程序或重新启动服务器,或类似的事情。我只能运行查询/存储过程。
服务器正在运行 Windows Server 2012 Standard 6.2 和 Microsoft SQL Server 2016 13.0.5366.0。我使用 TSQL 和 SSMS。
任何帮助将不胜感激!
编辑:
问题解决了。使用游标和存储过程 sp_update_jobstep 的组合。谢谢大家的帮助!
我为此编写的代码:
USE msdb ;
DECLARE @jobname nvarchar (max);
DECLARE cursor_asd CURSOR
FOR SELECT
jb.name
FROM msdb.dbo.sysjobs jb
WHERE name like '%Delta%';
OPEN cursor_asd;
FETCH NEXT FROM cursor_asd INTO
@jobname;
WHILE @@FETCH_STATUS = 0
BEGIN
Print @jobname
EXEC dbo.sp_update_jobstep
@job_name = @jobname,
@step_id = 1,
@retry_attempts = 2,
@retry_interval = 5 ;
FETCH NEXT FROM cursor_asd INTO
@jobname;
END;
CLOSE cursor_asd;
DEALLOCATE cursor_asd;
【问题讨论】:
-
什么版本的 SQL Server?运行此查询以找出答案。选择@@版本
-
@Isaac Microsoft SQL Server 2016 13.0.5366.0 (X64) on Windows Server 2012 Standard 6.2
标签: sql-server tsql configuration automation windows-server-2012