Как переместить таблицу в схему в 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), вы можете оставить объект word, так как это значение по умолчанию.