Поделиться через


Копирование данных между серверами

Чтобы выполнить массовый перенос данных из одной базы данных Microsoft SQL Server в другую, вначале необходимо выполнить массовый экспорт данных из базы данных-источника в файл. Затем из этого файла выполняется массовый импорт в целевую базу данных.

Важное примечаниеВажно!

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

Копирование данных между серверами с помощью программы bcp или инструкций языка Transact-SQL

Для экспорта или импорта данных может быть применена команда bcp или инструкции Transact-SQL BULK INSERT и INSERT ... SELECT * FROM OPENROWSET(BULK...) Transact-SQL для импорта данных. Дополнительные сведения см. в разделах Массовый импорт и экспорт данных с помощью программы bcp и Массовый импорт данных при помощи инструкции BULK INSERT или OPENROWSET(BULK...).

Команда bcp может передавать данные между экземплярами SQL Server на различных процессорных архитектурах в собственном формате, в символьном формате или в формате Юникода. Если требуется дополнительная гибкость, можно создать файл форматирования. Формат или файл форматирования, который использовался при экспорте данных, может быть использован и при импорте данных.

ПримечаниеПримечание

Сведения о копировании данных между экземплярами сервера, имеющими разные параметры сортировки, см. в разделе Копирование данных между различными параметрами сортировки.

Сохранение данных в собственном формате Юникода

Сохранение данных в собственном формате Юникода удобно применять при копировании данных с одного экземпляра SQL Server на другой. Использование собственного формата для несимвольных данных позволяет сэкономить время и предотвратить ненужные преобразования типов данных в символьный формат. Потери символов возможны при копировании расширенных символов в столбцы, не являющиеся столбцами Юникода, когда они не могут быть правильно представлены. Можно предотвратить потери расширенных символов, применяя формат символов Юникода для всех символьных данных при массовом переносе данных между серверами, использующими разные кодовые страницы. Однако файл данных в собственном формате Юникода можно обработать только с помощью программы bcp или инструкций Transact-SQL, поддерживающих массовый импорт — BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK...).

Другие методы копирования данных между базами данных

Кроме программы bcp и инструкций Transact-SQL, для копирования данных из одной базы данных SQL Server в другую можно использовать:

  • мастер импорта и экспорта служб Integration Services (службы SSIS).

    Этот мастер может получить доступ к множеству источников данных. Можно копировать данные в и из SQL Server, неструктурированных файлов, СУБД Microsoft Access, электронной таблицы Microsoft Excel и других поставщиков OLE DB. Дополнительные сведения см. в разделе Перенос данных с помощью мастера импорта и экспорта SQL Server;

  • распределенные запросы как часть инструкции INSERT. Дополнительные сведения см. в разделах Распределенные запросы и Инструкция INSERT (Transact-SQL);

  • инструкцию SELECT INTO, в которой результирующий набор используется для создания новой таблицы. Дополнительные сведения см. в разделе SELECT (Transact-SQL).

ПримечаниеПримечание

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