批量更改数据库表架构(生成sql后直接执行!)

批量更改数据库表架构(生成sql后直接执行!)
use my_test; --当前数据库
declare  @alltable varchar(1000),
         @SchemaOld varchar(1000),
         @SchemaNew varchar(1000),
         @NewSql VARCHAR(max),
         @Index INT;
SET @SchemaOld=;--原架构名称
SET @SchemaNew=;--新架构名称
SET @NewSql=‘‘;
SET @Index=1;
SELECT @alltable=isnull(@alltable+,,‘‘)+[name] FROM SysObjects Where XType=U ORDER BY Name;
declare @s varchar(1000),@ns varchar(1000);
set @s=@alltable;
set @s=@s+,;
while (charindex(,,@s)<>0)
begin
    select @ns=substring(@s,1,charindex(,,@s)-1);
    --执行操作 
    --SET  @NewSql=@NewSql+ ‘alter SCHEMA ‘+@SchemaNew+‘  transfer ‘+@SchemaOld+‘.‘+@ns+‘;‘ 
    PRINT /*+CAST(@Index AS varchar)+*/ alter SCHEMA +@SchemaNew+  transfer +@SchemaOld+.+@ns+; ;
    SET @Index=@Index+1;
    --结束操作
set @s=stuff(@s,1,charindex(,,@s),‘‘);
end

PRINT @NewSql;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。