Как переместить таблицу в схему в T-SQL

Я хочу переместить таблицу в конкретную схему с использованием T-SQL? Я использую SQL Server 2008.

2 ответа

Решение
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

Если вы хотите переместить все таблицы в новую схему, вы можете использовать недокументированное (и в какой-то момент быть устаревшим, но маловероятным!) sp_MSforeachtable хранимая процедура:

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

Ref.: 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 [;]

Если это таблица (или что-то еще, кроме коллекции типов или схем XML), вы можете пропустить слово Object, так как это по умолчанию.

Другие вопросы по тегам