Подтвердить что ты не робот

SQL Server. Создайте копию таблицы базы данных и поместите ее в ту же базу данных?

У меня есть таблица ABC в БД базы данных. Я хочу создать копии ABC с именами ABC_1, ABC_2, ABC_3 в том же БД. Как это сделать, используя либо Management Studio (желательно), либо SQL-запросы?

Это для SQL Server 2008 R2.

4b9b3361

Ответ 1

Используйте SELECT ... INTO:

SELECT *
INTO ABC_1
FROM ABC;

Это создаст новую таблицу ABC_1, которая имеет ту же структуру столбцов, что и ABC, и содержит те же данные. Ограничения (например, ключи, значения по умолчанию), однако, не копируются.

Вы можете запускать этот запрос несколько раз с другим именем таблицы каждый раз.


Если вам не нужно копировать данные, только для создания новой пустой таблицы с той же структурой столбцов, добавьте предложение WHERE с фальшивым выражением:

SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;

Ответ 2

Копировать схему (генерировать DDL) через пользовательский интерфейс SSMS

В SSMS разверните базу данных в обозревателе объектов, перейдите в Таблицы, щелкните правой кнопкой мыши по интересующей вас таблице и выберите " Сценарий таблицы как", " Создать в", " Окно нового редактора запросов". Выполните поиск и замену (CTRL + H), чтобы изменить имя таблицы (т. ABC_1 Поместите ABC в поле Find What и ABC_1 в поле Replace With, затем нажмите OK).

Скопируйте схему через T-SQL

Другие ответы, показывающие, как это сделать с помощью 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

Ответ 3

Если вы хотите дублировать таблицу со всеми ее ограничениями и ключами, выполните следующие шаги:

  • Откройте базу данных в SQL Management Studio.
  • Щелкните правой кнопкой мыши на таблице, которую вы хотите дублировать.
  • Выберите Script Таблица как → Создать в → Новое окно редактора запросов. Это приведет к созданию Script для воссоздания таблицы в новом окне запроса.
  • Измените имя таблицы и относительные ключи и ограничения в script.
  • Выполните script.

Затем для копирования данных выполните ниже 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

Ответ 4

1-й вариант

select *
  into ABC_1
  from ABC;

Вторая опция: используйте SSIS, щелкнув правой кнопкой мыши по базе данных в проводнике объектов > все задачи > экспортировать данные

  • источник и цель: ваша БД
  • исходная таблица: ABC
  • целевая таблица: ABC_1 (таблица будет создана)

Ответ 5

используйте студию sql server manegement или netcat, и это будет проще манипулировать sql

Ответ 6

Это еще один вариант:

select top 0 * into <new_table> from <original_table>

Ответ 7

Вам нужно написать SSIS для копирования таблицы и ее данных, ограничений и триггеров. У нас есть в нашей организации программное обеспечение Kal Admin от kalrom Systems, у которого есть бесплатная версия для загрузки (я думаю, что функция копий является необязательной)