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

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

ms190923.note(ru-ru,SQL.90).gifВажно!
Для баз данных, использующих простую модель восстановления, после массового импорта данных в таблицу рекомендуется создать разностную резервную копию. Для базы данных, использующих модель полного восстановления или модель с неполным протоколированием, достаточно наличие резервной копии журнала. Дополнительные сведения см. в разделе Создание полных и разностных резервных копий базы данных SQL Server или Использование резервных копий журналов транзакций.

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

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

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

ms190923.note(ru-ru,SQL.90).gifПримечание.
Сведения о копировании данных между экземплярами сервера, имеющими разные параметры сортировки, см. в разделе Копирование данных между различными параметрами сортировки.

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

Сохранение данных в собственном формате Юникода удобно применять при копировании данных с одного экземпляра 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).
ms190923.note(ru-ru,SQL.90).gifПримечание.
Сведения о полном копировании баз данных см. в разделе Копирование баз данных на другие серверы.

См. также

Основные понятия

Импорт данных в собственном и символьном формате из предыдущих версий SQL Server
Оптимизация производительности массового импорта данных
Сценарии массового импорта и экспорта данных
Использование символьного формата Юникода для импорта и экспорта данных

Другие ресурсы

BACKUP (Transact-SQL)
Программа bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
RESTORE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005