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

时间:2021-11-22 20:35:25
批量更改数据库表架构(生成sql后直接执行!)
use my_test; --当前数据库
declare @alltable varchar(1000),
@SchemaOld varchar(1000),
@SchemaNew varchar(1000),
@NewSql VARCHAR(max),
@Index INT;
SET @SchemaOld='dbo';--原架构名称
SET @SchemaNew='SC';--新架构名称
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;