如何批量在多个SqlServer数据库中执行升级语句

公司帐套太多,有时候升级一个小更新语句,也需要一个一个手动执行,特别耗时。

可利用sqlserver 数据库名.dbo.表名进行批量升级。

NGSoft.dbo.ngusers表中存储着所有帐套的名字,直接从ngusers里面拉取帐套结果集。

注意ng0001为附件服务器需要单独过滤。

执行脚本

DECLARE @dbname nvarchar(6)=''
DECLARE @sql NVARCHAR(MAX)=''
DECLARE rs CURSOR LOCAL SCROLL FOR
select DISTINCT dbname from NGSoft.dbo.ngusers
OPEN rs
FETCH NEXT FROM rs INTO @dbname
WHILE @@FETCH_STATUS = 0
BEGIN

--你需要批量执行的sql语句
SET @sql = '

CREATE TABLE '+@dbname+'.dbo.pms3_hkai_event(
    phid BIGINT NOT NULL    ,
    project_phid BIGINT     ,
    type VARCHAR(64)     ,
    sn VARCHAR(64)     ,
    content VARCHAR(3072)     ,
    event_time DATE     ,
    master_pic_url VARCHAR(128)     ,
    slave_pic_url VARCHAR(128)     ,
    master_pic_guid VARCHAR(64)     ,
    slave_pic_guid VARCHAR(64)     ,
    temperature Decimal(6,2)     ,
    creator BIGINT     ,
    editor BIGINT     ,
    ng_insert_dt DATE     ,
    ng_update_dt DATE     ,
    ng_record_ver INT     ,
    constraint pk_pms3_hkai_event
    primary key nonclustered (phid)
) ;

alter table '+@dbname+'.dbo.pms3_hkai_event add cur_orgid  BIGINT;

'
if(@dbname != 'ng0001')
begin
exec (@sql);
end
	
FETCH NEXT FROM rs INTO @dbname
END
CLOSE rs


执行效果如下

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值