У мене є таблиця ABC в БД бази даних. Я хочу створити копії ABC з іменами ABC_1, ABC_2, ABC_3 в одній БД. Як я можу це зробити, використовуючи Management Studio (бажано) або SQL запити?
Це для SQL Server 2008 R2.
У мене є таблиця ABC в БД бази даних. Я хочу створити копії ABC з іменами ABC_1, ABC_2, ABC_3 в одній БД. Як я можу це зробити, використовуючи Management Studio (бажано) або SQL запити?
Це для SQL Server 2008 R2.
Відповіді:
Використання SELECT ... INTO
:
SELECT *
INTO ABC_1
FROM ABC;
Це створить нову таблицю, ABC_1
яка має таку ж структуру стовпців, що ABC
і ті самі дані. Однак обмеження (наприклад, клавіші, значення за замовчуванням) не копіюються.
Ви можете запустити цей запит кілька разів з різною назвою таблиці кожен раз.
Якщо вам не потрібно копіювати дані, потрібно лише створити нову порожню таблицю з тією ж структурою стовпців, додати WHERE
пункт із фальшивим виразом:
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
SELECT TOP(0) *
більш чистий WHERE
метод, ніж завжди хибний твердження
У SSMS розгорніть свою базу даних в Провіднику об’єктів , перейдіть до Таблиць , клацніть правою кнопкою миші на потрібній вам таблиці та виберіть Скриптова таблиця як , Створити , Вікно редактора нових запитів . Знайдіть і замініть ( CTRL + H ), щоб змінити назву таблиці (тобто поставте ABC
в полі Find What і ABC_1
в пункті Replace With і натисніть кнопку OK ).
Інші відповіді, що показують, як це зробити за допомогою SQL, також працюють добре, але різниця у цьому методі полягає в тому, що ви також отримаєте будь-які індекси, обмеження та тригери.
Якщо ви хочете включити дані, після створення цієї таблиці запустіть сценарій нижче, щоб скопіювати всі дані з ABC (зберігаючи однакові значення ідентифікаторів, якщо у вас є поле ідентифікації):
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
IDENTITY_INSERT
значення УВІМКНЕНО, щоб дозволити встановити стовпець посвідчення "вручну", ви змішали порядок у своєму прикладі. Крім того , ви повинні поіменний список ваших колонок
Якщо ви хочете дублювати таблицю з усіма її обмеженнями та ключами, виконайте наступні дії:
Потім для копіювання даних запустіть цей сценарій нижче:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF