2009-03-02 3 views
32

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

SELECT * INTO NewTable FROM existingdb.dbo.existingtable; 

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

Также это необходимо сделать в коде, за пределами SQL Server Management Studio. Мастер публикации

ответ

53

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

Пример:

SELECT * INTO targetTable 
FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable] 
2

Генерация сценариев?

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

check-out SP_ Genereate_Inserts для создания сценария ввода данных.

+0

Если вы создаете большое количество данных, SSMS не сможет открыть SQL. – jumxozizi

+0

Но вы все равно можете использовать 'sqlcmd' из командной строки для выполнения сценария. –

+0

@Rubiksmomo - Правда, но также обратите внимание, что даже если SSMS может открыть большой объем данных, которые могут по-прежнему сбой в вставке («запрос завершается с ошибками») при написании даже большого количества данных. Это может произойти даже при небольшом числе столбцов (узкой ширины, при этом). – OcelotXL

3

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

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

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

Here - хорошая тема на аналогичной теме, где представлено больше примеров того, как это сделать в чистом sql.

0

Создание базы данных с базой данных сценариев, как ... CREATE Для

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

  • Источник экземпляра> YourDatabase> Задачи> Экспорт данных
  • данных Soure = SQL Server Native Client
    • Validate/ввести лицо, вручающее судебные документы & базы данных
  • Destination = SQL Server Native Client
    • Подтвердить/ввести сервер & Da tabase
  • Выполняет мастер
2

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

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

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

Смежные вопросы