Подготовка данных к массовому экспорту или импорту

Изменения: 15 сентября 2007 г.

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

ms188609.note(ru-ru,SQL.90).gifПримечание.
Если неизвестно, как следует форматировать файл данных для массового импорта, для экспорта данных из таблицы в файл данных можно использовать программу bcp. Форматирование каждого поля данных в этом файле соответствует необходимому формату для массового импорта данных в соответствующий столбец таблицы. Используйте то же самое форматирование для полей своего файла данных.

Замечания по формату файлов данных для массового экспорта

Прежде чем выполнить операцию массового экспорта с помощью команды bcp, примите во внимание следующее.

  • При экспорте данных в файл команда bcp автоматически создает файл данных, используя указанное имя файла. Если это имя файла уже используется, то в процессе массового копирования в файл данных существующее содержимое файла перезаписывается.
  • Для массового экспорта из таблицы или представления в файл данных необходимо разрешение SELECT в таблице или представлении, над которым производится операция массового копирования.
  • Microsoft SQL Server может использовать параллельный просмотр для получения данных. Поэтому обычно не гарантируется определенный порядок размещения в файле данных строк таблицы, над которыми была выполнена операция массового экспорта из экземпляра SQL Server. Чтобы строки таблицы для массового экспорта были размещены в файле данных в определенном порядке, примените параметр queryout для массового экспорта из запроса и укажите предложение ORDER BY. Дополнительные сведения см. в разделе Экспорт данных из запроса в файл данных.

Требования к формату файлов данных для массового импорта

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

  • Данные должны быть представлены в формате строк и столбцов.
ms188609.note(ru-ru,SQL.90).gifПримечание.
Структура файла данных необязательно должна быть идентична структуре таблицы SQL Server, так как столбцы можно пропускать и переупорядочивать в процессе массового импорта.
  • Данные в файле данных должны быть в поддерживаемом формате, например символьном или исходном.
  • Данные могут быть в символьном или исходном двоичном формате, включая Юникод.
  • Чтобы импортировать данные с использованием команды bcp, инструкции BULK INSERT или инструкции INSERT ... SELECT * FROM OPENROWSET(BULK...), целевая таблица должна уже существовать.
  • Каждое поле в файле данных должно быть совместимо с соответствующим столбцом в целевой таблице. Например, поле типа int нельзя загрузить в столбец типа datetime. Дополнительные сведения см. в разделах Использование собственных и символьных форматов, а также форматов Юникода и Указание форматов данных для совместимости с помощью программы bcp.
    ms188609.note(ru-ru,SQL.90).gifПримечание.
    Указать для импорта из файла данных не весь файл, а подмножество строк позволяет bcp с аргументом -Ffirst_row или аргумент -Llast_row. Дополнительные сведения см. в разделе Программа bcp.
  • Чтобы импортировать данные из файлов данных с полями фиксированной длины или фиксированной ширины, следует использовать файл форматирования. Дополнительные сведения см. в разделе Образцы XML-файлов форматирования.
  • В некоторых случаях файл с разделителями-запятыми (CSV) можно использовать в качестве файла данных для массового импорта данных в SQL Server. Обратите внимание, что признаком конца поля CSV-файла не обязательно должна быть запятая. CSV-файл, который можно использовать в качестве файла данных для массового импорта, должен соответствовать следующим условиям.
    • Поля данных не должны содержать признак конца поля.
    • Или никакие, или все значения в полях данных должны заключаться в кавычки ("").
      Чтобы импортировать данных из файла Microsoft FoxPro или Visual FoxPro (DBF) либо электронной таблицы Microsoft Excel (XLS), данные необходимо преобразовать в CSV-файл, который обычно имеет расширение CSV. Затем его можно использовать как файл данных в операции массового импорта SQL Server.

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

  • Пользователи должны иметь разрешения INSERT и SELECT в таблице. Пользователи также должны иметь разрешение ALTER TABLE в случае использования параметров, требующих операций DDL, например отмены ограничений.
  • При массовом импорте данных с использованием инструкций BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK...), файл данных должен быть доступен для операций чтения из профиля безопасности процесса SQL Server (если пользователь регистрируется с именем входа SQL Server) или из процедуры входа Microsoft Windows, выполняемой с делегированными полномочиями безопасности. В дополнение пользователь должен иметь разрешение ADMINISTER BULK OPERATIONS для чтения файла.
ms188609.note(ru-ru,SQL.90).gifПримечание.
Массовый импорт в секционированное представление не поддерживается, и попытки массового импорта данных в секционированное представление завершаются неудачно.

См. также

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

Применение символьного формата при импорте и экспорте данных
Использование собственного формата для импорта и экспорта данных
Основные сведения о XML-файлах форматирования

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

Программа bcp
BULK INSERT (Transact-SQL)
Типы данных (Transact-SQL)
ExportData Method
ImportData Method

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

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

Журнал изменений

Версия Журнал

15 сентября 2007 г.

Изменения
  • Расширен раздел по подготовке CSV-файла к массовому импорту.

17 июля 2006 г.

Добавления
  • Добавлено примечание к введению.
  • Добавлены требования к импорту файлов и полей фиксированной длины.

14 апреля 2006 г.

Добавления
  • Добавлены сведения о формате файлов данных при импорте данных извне SQL Server.