Скопировать таблицу из одной базы данных в другую - программирование
Подтвердить что ты не робот

Скопировать таблицу из одной базы данных в другую

Я только что создал пустую базу данных на своей машине. Теперь я хочу скопировать таблицу из нашей базы данных сервера в эту локальную базу данных.

Какие команды sql мне нужно запустить, чтобы сделать это? Я хочу создать новую таблицу, скопировать данные из старой таблицы и вставить ее в новую таблицу.

4b9b3361

Ответ 1

Создайте связанный сервер на исходном сервере. Самый простой способ - щелкнуть правой кнопкой мыши "Связанные серверы" в Management Studio; в разделе Управление → Объекты сервера.

Затем вы можете скопировать таблицу, используя имя из 4 частей, server.database.schema.table:

select  *
into    DbName.dbo.NewTable
from    LinkedServer.DbName.dbo.OldTable

Это создаст новую таблицу с той же структурой, что и исходная, и скопирует данные.

Ответ 2

Другим методом, который можно использовать для копирования таблиц из исходной базы данных в пункт назначения, является мастер экспорта и импорта SQL Server, который доступен в SQL Server Management Studio.

У вас есть выбор для экспорта из исходной базы данных или импорта из целевого для передачи данных.

Этот метод - быстрый способ скопировать таблицы из исходной базы данных в целевую, если вы хотите скопировать таблицы, не имеющие отношения к отношениям и заказам таблиц.

При использовании этого метода индексы таблиц и ключей не будут переданы. Если вы заинтересованы в его копировании, вам необходимо сгенерировать скрипты для этих объектов базы данных.

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

Не стесняйтесь читать больше об этом методе, а также о некоторых других методах (включая генерировать скрипты, SELECT INTO и сторонние инструменты) в этой статье: https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

Ответ 3

SELECT... INTO:

select * into <destination table> from <source table>

Ответ 4

Предполагая, что они находятся на одном сервере, попробуйте следующее:

SELECT *
INTO SecondDB.TableName
FROM FirstDatabase.TableName

Это создаст новую таблицу и скопирует данные с FirstDatabase.TableName в SecondDB.TableName и не создаст внешние ключи или индексы.

Ответ 5

При постоянной миграции между двумя базами данных возможность вставить в уже существующую структуру таблицы. Если да, то:

Используйте следующий синтаксис:

insert into DESTINATION_DB.dbo.destination_table
select *
  from SOURCE_DB.dbo.source_table
[where x ...]

Если вы переносите LOT таблиц (или таблицы с ограничениями внешних ключей), я бы рекомендовал:

  • Сгенерирование скриптов с опцией Advanced/Типы данных до script: только данные OR
  • Курорт использует сторонний инструмент.

Надеюсь, что это поможет!

Ответ 6

Предполагая, что вам нужны разные имена для таблиц.

Если вы используете PHPmyadmin, вы можете использовать их вариант SQL в меню. Затем вы просто скопируете SQL-код из первой таблицы и вставьте его в новую таблицу.

Это сработало для меня, когда я двигался с localhost на веб-хостинг. Надеюсь, это сработает для вас!

Ответ 7

INSERT INTO ProductPurchaseOrderItems_bkp
      (
       [OrderId],
       [ProductId],
       [Quantity],
       [Price]
      )
SELECT 
       [OrderId],
       [ProductId],
       [Quantity],
       [Price] 
FROM ProductPurchaseOrderItems 
   WHERE OrderId=415

Ответ 8

Самый быстрый способ - использовать инструмент, например RazorSQL или Toad, для этого.

Ответ 9

Если вам нужна вся структура таблицы (а не только базовый макет данных), используйте Task>Script Table As>Create To>New Query Window и запустите в своей новой базе данных. Затем вы можете скопировать данные в свободное время.