我想移动一个表到一个特定的模式使用T-SQL?我使用的是SQL Server 2008。
ALTER SCHEMA TargetSchema
TRANSFER SourceSchema.TableName;
如果你想把所有的表都移动到一个新的模式中,你可以使用没有文档的sp_MSforeachtable存储过程(在某些时候会被弃用,但不太可能!):
exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"
参考:ALTER SCHEMA
SQL 2008:如何将数据库模式更改为dbo
简短的回答:
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,因为这是默认的。
推荐文章
- 确定记录是否存在的最快方法
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 外键约束可能导致循环或多条级联路径?
- 如何选择每一行的列值不是独特的
- nvarchar(max)非文本
- 在SQL Server 2008 R2中重命名数据库时出错
- 将数据复制到另一个表中
- 如何在SQL中选择表的最后一条记录?
- 修改列,添加默认约束
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?