公司帐套太多,有时候升级一个小更新语句,也需要一个一个手动执行,特别耗时。
可利用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
执行效果如下