Скопировать таблицу в другую базу данных на другом сервере SQL - PullRequest
34 голосов
/ 02 марта 2009

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

SELECT * INTO NewTable FROM existingdb.dbo.existingtable;

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

Кроме того, это необходимо сделать в коде вне SQL Server Management Studio.

Ответы [ 6 ]

57 голосов
/ 02 марта 2009

Да. добавьте запись связанного сервера и используйте команду select для использования соглашения об именовании объектов из четырех частей db.

Пример:

SELECT * INTO targetTable 
FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable]
3 голосов
/ 16 мая 2013

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

Я использую Apex Diff , но есть также много других инструментов, таких как Red Gate или Dev Art ...

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

Здесь - хорошая тема на похожую тему с множеством примеров того, как сделать это в чистом SQL.

2 голосов
/ 10 октября 2017

SQL Server (2012) предоставляет другой способ создания сценария для баз данных SQL Server с его объектами и данными. Этот сценарий может использоваться для копирования схемы таблиц и данных из исходной базы данных в целевую в нашем случае.

  1. Используя SQL Server Management Studio, щелкните правой кнопкой мыши исходную базу данных в проводнике объектов, затем в разделе «Задачи» выберите «Создать сценарии». enter image description here
  2. В окне Выбор объектов выберите Выбрать конкретные объекты базы данных, чтобы указать таблицы, для которых вы будете создавать сценарий, затем выберите таблицы, отметив их галочкой рядом с каждой из них. Нажмите кнопку "Далее. enter image description here
  3. В окне «Задать параметры сценариев» укажите путь для сохранения созданного файла сценария и нажмите «Дополнительно». enter image description here
  4. В появившемся окне «Дополнительные параметры сценариев» укажите «Схема и данные» в качестве типов данных для сценария. Отсюда вы можете решить, хотите ли вы сценарии индексов и ключей в ваших таблицах. Нажмите ОК. enter image description here Чтобы вернуться в окно «Дополнительные параметры сценариев», нажмите «Далее».
  5. Просмотрите окно «Сводка» и нажмите «Далее». enter image description here
  6. Вы можете следить за ходом выполнения из окна Сохранить или опубликовать сценарии. Если ошибки нет, нажмите Готово, и вы найдете файл сценария по указанному пути. enter image description here

Метод SQL Scripting полезен для генерации одного скрипта для схемы и данных таблиц, включая индексы и ключи. Но опять же, этот метод не генерирует сценарий создания таблиц в правильном порядке, если между таблицами есть отношения.

2 голосов
/ 02 марта 2009

Генерировать скрипты?

Сгенерируйте скрипт для создания таблицы, затем сгенерируйте скрипт для вставки данных.

извлечение SP_ Genereate_Inserts для создания сценария вставки данных.

2 голосов
/ 02 марта 2009

Мастер публикации баз данных Microsoft SQL Server сгенерирует все необходимые операторы вставки и, при необходимости, информацию о схеме, если вам это необходимо:

http://www.microsoft.com/downloads/details.aspx?familyid=56E5B1C5-BF17-42E0-A410-371A838E570A

0 голосов
/ 12 апреля 2016

Создать базу данных, используя базу данных сценариев как ... СОЗДАТЬ

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

  • Экземпляр источника> Ваша база данных> Задачи> Экспорт данных
  • Data Soure = собственный клиент SQL Server
    • Проверить / ввести сервер и базу данных
  • Назначение = собственный клиент SQL Server
    • Проверить / ввести сервер и базу данных
  • Следуйте указаниям мастера
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...