declare @table_name varchar(50)
,@schema_id int
,@schema_name varchar(50)
,@sql_cmd nvarchar(255)
declare table_cursor cursor for
select name, schema_id
from sys.tables
where schema_id <> 1 -- dbo 的 schema_id = 1
order by name
open table_cursor
fetch next from table_cursor into @table_name, @schema_id
while @@fetch_status = 0
begin
print ''
select @schema_name = name
from sys.schemas
where schema_id = @schema_id
select @sql_cmd = 'alter schema dbo transfer ' + @schema_name + '.' + @table_name
print @sql_cmd
exec sp_executesql @sql_cmd
fetch next from table_cursor into @table_name, @schema_id
end
close table_cursor
deallocate table_cursor
go