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

23 浏览
0 Comments

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

我想使用T-SQL将一个表移到特定的模式中,我正在使用SQL Server 2008。

0
0 Comments

如何将表移动到T-SQL中的架构

你可以使用以下代码将表移动到另一个架构中:

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 collection),可以省略Object关键字。

有人对我的答案进行了负评,请和被接受的答案进行对比,它们是相同的,而且被接受的答案已经获得了257个赞(包括我的)。

感谢你确认了数据仍然存在,这样我就不用担心了...

你在被接受的答案之后6年才回答的,而且你自己的评论中说“它们是相同的”。

- 谢谢你的观察:)我确实补充了一些对很多人来说可能很重要的内容,原始的被接受的答案没有提到这一点,即“我可以确认表中的数据仍然存在”。

为什么表中的数据在移动到不同的架构容器中时不会丢失呢?

好吧,我可以在我的服务器上运行一些DDL,并创建一个与你的服务器上完全相同的表。但是我的表里没有你的数据。现在你在你的服务器上运行一些DDL来将表移动到不同的架构中。它的数据还在吗?我确认它仍然存在,“这可能非常重要:)”

哦,我在6年之后给被接受的答案点了个赞。看来这也是无效的:|

附注:请参考meta.stackexchange.com/questions/23996/… - 绝大多数人都认为回答老问题是个好主意。

好名字变了。回答旧问题是很好的,只要它们对现有答案有所补充。

0
0 Comments

问题:如何在T-SQL中将表移动到模式中?

原因:用户想要将表移动到不同的模式中,以便更好地组织和管理数据库对象。

解决方法:可以使用T-SQL中的ALTER SCHEMA语句来将表移动到不同的模式中。以下是一些解决方法:

1. 将单个表移动到目标模式中:

ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

2. 将所有表移动到新模式中(使用未记录的存储过程):

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

参考资料:

- ALTER SCHEMA官方文档:ALTER SCHEMA

- Stack Overflow上的相关问题:SQL 2008: How do I change db schema to dbo

0