我想移动一个表到一个特定的模式使用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中获取两个值的最小值
- 如何在不知道其名称的情况下删除SQL默认约束?
- 在表变量上创建索引
- 如何连接到SQL Server 2008 Express的本地实例
- 如何在SQL Server中删除外键?
- 如何为查询返回的每一行执行存储过程一次?
- 如何使用SQL Server 2008做多个CASE WHEN条件?
- 如果没有使用EXISTS引入子查询,则只能在选择列表中指定一个表达式
- SQL Server -事务回滚错误?
- 查询以列出数据库中每个表中的记录数量
- 在WHERE子句中引用列别名
- 存储图像在SQL Server?
- 列出在SQL Server上运行的查询
- 恢复未保存的SQL查询脚本
- 存储值为> 24:00:00的.Net Timespan的正确SQL类型是什么?