У меня есть таблица 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;
В SSMS разверните базу данных в обозревателе объектов, перейдите в Таблицы, щелкните правой кнопкой мыши по интересующей вас таблице и выберите " Сценарий таблицы как", " Создать в", " Окно нового редактора запросов". Выполните поиск и замену (CTRL + H), чтобы изменить имя таблицы (т. ABC_1
Поместите 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
Если вы хотите дублировать таблицу со всеми ее ограничениями и ключами, выполните следующие шаги:
Затем для копирования данных выполните ниже script:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
1-й вариант
select *
into ABC_1
from ABC;
Вторая опция: используйте SSIS, щелкнув правой кнопкой мыши по базе данных в проводнике объектов > все задачи > экспортировать данные
используйте студию sql server manegement или netcat, и это будет проще манипулировать sql
Это еще один вариант:
select top 0 * into <new_table> from <original_table>
Вам нужно написать SSIS для копирования таблицы и ее данных, ограничений и триггеров. У нас есть в нашей организации программное обеспечение Kal Admin от kalrom Systems, у которого есть бесплатная версия для загрузки (я думаю, что функция копий является необязательной)