ALTERSCHEMA TargetSchema
TRANSFER SourceSchema.TableName;
Если вы хотите переместить все таблицы в новую схему, вы можете использовать недокументированную (и не рекомендуется!) sp_MSforeachtableХранимую процедуру:
exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"
Зачем понизить голос за мой правильный ответ? Пожалуйста, проверьте мой против принятого ответа, который является тем же, и уже имеет 257 голосов (включая мой).
Обратный инженер
2
Получите подтверждение, что данные остаются нетронутыми, что просто спасло мое кровяное давление ... :)
6
@DaveBoltnman: вы ввели ответ через 6 лет после принятого ответа и своим собственным комментарием выше «что то же самое».
Митч Уит
4
почему данные в таблице не остаются неизменными только потому, что таблица перемещена в другой контейнер схемы?
Митч Уит
2
хорошая смена имени @DaveBoltman. Отвечать на старые вопросы замечательно, когда они добавляют что-то к существующим ответам.
Ответы:
Если вы хотите переместить все таблицы в новую схему, вы можете использовать недокументированную (и не рекомендуется!)
sp_MSforeachtable
Хранимую процедуру:Ref .:
ALTER SCHEMA
SQL 2008: как изменить схему БД на dbo
источник
Короткий ответ:
Я могу подтвердить, что данные в таблице остаются нетронутыми, что, вероятно, очень важно :)
Длинный ответ в соответствии с документами MSDN ,
Если это таблица (или что-то еще, кроме коллекции типов или схем XML), вы можете пропустить слово Object, так как это по умолчанию.
источник