Як перемістити таблицю в схему в T-SQL


273

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


1
Якщо вам потрібно перемістити декілька таблиць до нової схеми, див. Перейменування декількох таблиць
Тоні,

Відповіді:


464
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

Якщо ви хочете перемістити всі таблиці в нову схему, ви можете використовувати незадокументовану (і в якийсь момент застарілу, але навряд чи!) sp_MSforeachtableЗбережену процедуру:

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

Посилання: ALTER SCHEMA

SQL 2008: Як змінити схему db на dbo


6
2018 рік і досі врятував мені життя. Дякую тобі, Мітч.
ClownCoder

19

Коротка відповідь:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

Я можу підтвердити, що дані таблиці залишаються цілими, що, мабуть, досить важливо :)

Довга відповідь за документами MSDN ,

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

Якщо це таблиця (або що-небудь крім колекції схем типу або XML), ви можете залишити слово «Об’єкт», оскільки це за замовчуванням.


1
Чому зворотний голос для моєї правильної відповіді? Будь ласка, перевірте мою відповідь на прийняту відповідь, яка є однаковою, і вже має 257 відгуків (включаючи мою).
Інженер із зворотним

2
Запропонувати підтвердження даних залишається недоторканим, що лише врятувало мій кров'яний тиск ... :)

6
@DaveBoltnman: ви ввели відповідь через 6 років після прийнятої відповіді та за власним коментарем вище "який той самий".
Мітч Пшеничний

4
чому б дані в таблиці не залишилися цілими лише тому, що таблиця переміщена в інший контейнер схеми?
Мітч Пшеничний

2
приємна зміна імені @DaveBoltman. Відповісти на старі питання чудово, коли вони додають щось до існуючих відповідей.
Мітч Пшеничний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.