批量修改所有服务器的dbmail配置(推荐)

发布时间:2024-01-25
服务器
最近遇到这样一个案例,需要修改所有sql server的database mail的smtp,原来的smtp为10.xxx.xxx.xxx, 现在需要修改为192.168.xxx.xxx, 另外需要规范邮件地址,以前这类邮件servername@yoursqldba.com的后缀需要修改为servername@xxxx.com(信息做了脱敏处理)。
如果使用ssms客户端的ui界面去修改的话, 那么多服务器一台一台去修改,不仅费时费力,而且枯燥无聊。只能使用脚本,一旦写好一个脚本,而后使用multiple server query execution(极力推荐使用这个管理、维护数据库),执行一次脚本,全部搞定。剩下的时间你可以喝喝茶、学习下新知识!
declare @emailaccount sysname;declare @smtpserver sysname;declare @emailaddress nvarchar(120);declare @emailsuffix nvarchar(32);declare @neweamiladdress nvarchar(120);--declare @actualemailsuffix nvarchar(32)=\\\'xxxx.com\\\'; sql server 2005不支持此功能,会报cannot assign a default value to a local variable.declare @actualemailsuffix nvarchar(32);declare @actualsmtpserver sysname;set @actualemailsuffix=\\\'xxx.com\\\';set @actualsmtpserver=\\\'192.168.xxx.xxx\\\';declare emailaccount_cursor cursor fast_forwardforselect sa.[name] ,ss.[servername] ,sa.email_address from [msdb].[dbo].[sysmail_server] ss inner join [msdb].[dbo].[sysmail_account] sa on ss.[account_id]=sa.[account_id];open emailaccount_cursor;fetch next from emailaccount_cursor into @emailaccount, @smtpserver,@emailaddress;while @@fetch_status = 0begin if ltrim(rtrim(@smtpserver))!=@actualsmtpserver begin execute msdb.dbo.sysmail_update_account_sp @account_name = @emailaccount ,@mailserver_name=@actualsmtpserver; print @smtpserver; print @emailaccount; end; set @emailsuffix=substring(@emailaddress,charindex(\\\'@\\\',@emailaddress) 1, len(@emailaddress) -charindex(\\\'@\\\',@emailaddress)) if @emailsuffix!=@actualemailsuffix begin set @neweamiladdress= replace(@emailaddress,@emailsuffix,@actualemailsuffix); execute msdb.dbo.sysmail_update_account_sp @account_name = @emailaccount ,@email_address=@neweamiladdress ,@mailserver_name=@smtpserver; print @emailaccount; print @neweamiladdress; end; fetch next from emailaccount_cursor into @emailaccount, @smtpserver,@emailaddress;endclose emailaccount_cursor;deallocate emailaccount_cursor;
上一个:win10系统永久激活密钥(windows10密钥)
下一个:企业录用员工要签合同吗

motox怎么样,摩托罗拉手机怎么样
0xc0000221蓝屏解救方法win10(win10 0xc000021a蓝屏解救方法)
R25=2KB25/50=3900NTC热敏电阻RT表
联想n480二手值多少钱,二手联想n480回收价格
防丢水变色剂每吨多少钱?
猴1992跟狗1994相配吗 92猴94狗八字怎么样
EN20振动变送器
夫妻一方意外死亡赔偿金分配
tcl洗衣机显示e2解决办法
小米5和小米note区别(小米5 小米note)