Назад | Перейти на главную страницу

Скопируйте таблицу БД на 2 разных сервера MSSQL

У меня работает 2 сервера MSSQL с более или менее одинаковым набором данных. Это действительно установка для производства / разработки.

Теперь мой рабочий процесс такой. Ежедневно создается резервная копия каждой базы данных на рабочем сервере. Я передаю резервные копии через Интернет (10 гигабайт) на сервер разработки. Я «восстанавливаю» базу данных на сервере разработки, используя резервную копию с рабочего сервера, так что у меня есть текущий набор данных.

У меня такой вопрос:

Есть ли простой и быстрый способ «экспортировать» одну таблицу из базы данных сервера MSSQL и импортировать ее в базу данных на другом сервере MSSQL?

Меня больше интересует операция «передового опыта», чем какой-нибудь трюк с кассовым терминалом, подстроенный жюри.

ОБНОВИТЬ

После некоторого поиска в Google я нашел функцию сервера MSSQL, которая создает сценарий, который экспортирует таблицу и импортирует ее при запуске. Я не могу использовать это, так как мне нужно импортировать таблицу на другой сервер.

Ответ на вопрос об экспорте был дан в DBA:

https://dba.stackexchange.com/questions/25755/taking-a-backup-of-a-single-table-in-the-sql-server

О том, как экспортировать одну таблицу на SQL-сервере, тоже много раз говорили в Stackoverflow:

https://stackoverflow.com/questions/680552/table-level-backup

https://stackoverflow.com/questions/19698310/backup-a-single-table-with-its-data-from-a-database-in-sql-server-2008

Google дает еще много способов:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/923d1a5a-2f21-4193-9513-ab944145a58f/exporting-a-single-table-from-a-database

Как только у вас есть экспорт отдельной таблицы, перенесите ее любым способом (например, rsync или SFTP, scp), а затем импортируйте.

Вы также можете получить данные напрямую через SQL на вашем целевом сервере. Если у вас есть доступ к сети:

SELECT a.*
INTO <YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
     'SELECT *
      FROM <YOUR TABLE>
      ') AS a;

Но вы должны сами создавать индексы.

Или вы используете INSERT:

INSERT INTO 
<YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
         'SELECT *
          FROM <YOUR TABLE>
          ') AS a;