如何将表移动到T-SQL中的模式中

时间:2009-07-19 03:20:13

标签: sql-server sql-server-2008 tsql schema sql-server-2016

我想使用T-SQL将表移动到特定的Schema中?我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:434)

ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

如果要将所有表移动到新架构中,可以使用未记录的(并在某些时候弃用,但不太可能!)sp_MSforeachtable存储过程:

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

参考:ALTER SCHEMA

SQL 2008: How do I change db schema to dbo

答案 1 :(得分:17)

简短回答:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

我可以确认表中的数据保持不变,这可能非常重要:)

根据MSDN docs的长答案,

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

如果它是一个表(或者除了Type或XML Schema集合之外的任何东西),你可以省略Object这个词,因为这是默认值。