290

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

4

2 回答 2

495
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

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

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

参考:ALTER SCHEMA

SQL 2008:如何将 db 架构更改为 dbo

于 2009-07-19T03:24:42.923 回答
20

简短的回答:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

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

根据MSDN 文档的长答案,

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

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

于 2015-12-07T08:00:28.580 回答