HAd*_*des 6 sql sql-server sql-server-agent sql-server-2005
我有很多工作,可以将1个特定的电子邮件发送到人员列表.这个reciepients列表在step命令中是硬编码的,我需要在所有作业中从该列表中删除一个人.
如何遍历Sql Server Agent中的所有作业并修改命令文本以查找+替换特定的文本.
我正在使用sql server 2005并且已经查看了sp_update_jobStep,但似乎并不是我想要的.
干杯.
您可以尝试直接更新包含SQL服务器作业信息的系统表.对你来说相关的是:
msdb.dbo.SysJobs
msdb.dbo.SysJobSteps
Run Code Online (Sandbox Code Playgroud)
如果要删除特定的电子邮件地址,则可以使用单个UPDATE语句更新SysJobSteps表中的" 命令"字段.
UPDATE SJS SET
Command = REPLACE(Command, 'EmailAddress&TestDomain.Com', '')
FROM msdb.dbo.SysJobs SJ
INNER JOIN msdb.dbo.SysJobSteps SJS
ON SJS.Job_Id = SJ.Job_Id
WHERE SJ.Originating_server = ..... -- Your server here
AND SJS.Command LIKE '%EmailAddress@TestDomain.Com%'
Run Code Online (Sandbox Code Playgroud)
建议首先将上述查询作为SELECT语句运行,以测试它只返回您期望更新的作业步骤.