如何批量修改所有 sql server 代理作业中的作业步骤命令
我有很多工作都有一个步骤,就是向一组人员发送一封特定的电子邮件。 该收件人列表是在步骤命令中硬编码的,我需要在所有作业中从该列表中删除一个人。
如何循环遍历 Sql Server 代理中的所有作业并修改命令文本以查找+替换特定文本片段。
我正在使用 sql server 2005 并且已经查看过 sp_update_jobStep 但似乎并不完全是我想要的。
干杯。
I have many jobs that have a step to send 1 specific email out to a list of people. That list of reciepients is hardcoded in the step command and I need to remove one person from that list, in all jobs.
How do I loop through ALL the jobs in the Sql Server Agent and modify the command text to find+replace a specific piece of text.
I am using sql server 2005 and have already looked at sp_update_jobStep but doesn't appear to be exactly what i want.
Cheers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试直接更新保存 SQL Server 作业信息的系统表。 与您相关的内容是:
如果您要删除特定的电子邮件地址,则可以使用单个 UPDATE 语句更新 SysJobSteps 表中的 Command 字段。
建议首先将上述查询作为 SELECT 语句运行,以测试它仅返回您期望更新的作业步骤。
You could try to update the System tables that hold the information on jobs of the SQL server directly. The relevant ones for you would be:
If you have a specific email address to remove, you could update the Command field in the SysJobSteps table with a single UPDATE statement.
It would be advisable to run the above query as a SELECT statement first, to test it returns only the job steps your are expecting to update.
如果有人仍在寻找这个,那么下面应该可以。 不是最好的代码,但可以完成工作。
If anybody still looking for this then below should do. Not the finest code but gets the job done.