Я хочу переместить таблицу в конкретную схему с помощью T-SQL? Я использую SQL Server 2008.Как переместить таблицу в схему в T-SQL
ответ
ALTER SCHEMA TargetSchema
TRANSFER SourceSchema.TableName;
Если вы хотите переместить все таблицы в новую схему, вы можете использовать недокументированные sp_MSforeachtable
хранимой процедуры (и устареет в какой-то момент, но вряд ли!):
exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"
Ref .: ALTER SCHEMA
Short swer:
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, поскольку это значение по умолчанию.
Почему нижний предел для моего правильного ответа? Пожалуйста, проверьте мой против принятого ответа, который является тем же самым, и имеет уже 257 upvotes (включая мой). – DaveBoltman
Имейте upvote для подтверждения, что данные остаются нетронутыми, что только что спасло мое кровяное давление ... :) – 2016-02-07 23:05:52
@DaveBoltnman: вы ввели ответ через 6 лет после принятого ответа и своим собственным комментарием выше «то же самое», , –
Если вам нужно переместить несколько таблиц в новую схему, см. [Переименование нескольких таблиц] (http://stackoverflow.com/questions/10942901/renaming-multiple-tables) – Tony