У меня есть 2 запущенных сервера MSSQL с более или менее одинаковым набором данных. Это действительно производственная/разрабатывающая установка.
Теперь мой рабочий процесс выглядит так. Каждый день создаются резервные копии каждой из баз данных на производственном сервере. Я передаю резервные копии через Интернет (десятки гигабайт) на сервер разработки. Я «восстанавливаю» базу данных на сервере разработки, используя резервную копию с производственного сервера, чтобы у меня был актуальный набор данных.
Мой вопрос таков:
Существует ли простой и быстрый способ «экспортировать» одну таблицу из базы данных сервера MSSQL и импортировать ее в базу данных на другом сервере MSSQL?
Меня больше интересует «лучшая практика» работы, чем какие-то наспех сконструированные трюки с POS-терминами.
ОБНОВЛЯТЬ
После некоторого гугления я нашел функцию сервера MSSQL, которая создает скрипт, экспортирующий таблицу и импортирующий ее при запуске. Я не могу это использовать, так как мне нужно импортировать таблицу на другой сервер.
решение1
Вы также можете получить данные напрямую через 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;
решение2
Ответ на экспортную часть был дан на сайте DBA:
На вопрос о том, как экспортировать одну таблицу на SQL-сервере, уже много раз отвечали на Stackoverflow:
https://stackoverflow.com/questions/680552/table-level-backup
Google выдает еще много способов:
После того, как вы экспортировали одну таблицу, перенесите ее любым способом (например, rsync или SFTP, scp), а затем импортируйте.