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

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

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

Примечание.

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

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

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

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

  • Для массового экспорта из таблицы или представления в файл данных требуется SELECT разрешение на таблицу или представление, которое копируется массово.

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

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

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

  • Данные должны быть представлены в формате строк и столбцов.

Примечание.

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

  • Данные в файле данных должны быть в поддерживаемом формате, например символьном или исходном.

  • Данные могут быть в символьном или исходном двоичном формате, включая Юникод.

  • Чтобы импортировать данные с помощью команды bcp, BULK INSERT инструкции или INSERT ... SELECT * FROM OPENROWSET(BULK...) инструкции, целевая таблица должна существовать.

  • Каждое поле в файле данных должно быть совместимо с соответствующим столбцом в целевой таблице. Например, поле int не может быть загружено в столбец datetime . Дополнительные сведения см. в статьях о форматах данных массового импорта или массового экспорта (SQL Server) и указании форматов данных совместимости при использовании bcp (SQL Server).

    Примечание.

    Чтобы указать подмножество строк для импорта из файла данных, а не всего файла, можно использовать команду bcp с параметром -F <first_row> или -L <last_row> переключателем. Дополнительные сведения см. в разделе bcp Utility.

  • Чтобы импортировать данные из файлов данных фиксированной длины или с полями фиксированной ширины, используйте файл форматирования. Дополнительные сведения см. в разделе XML Format Files (SQL Server) (SQL Server).

  • Начиная с SQL Server 2017 (14.x), CSV-файл можно использовать в качестве файла данных для массового импорта данных в SQL Server. Терминатор поля CSV-файла не должен быть запятой. CSV-файл, который можно использовать в качестве файла данных для массового импорта, должен соответствовать следующим условиям.

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

  • Пользователи должны иметь INSERT и SELECT разрешения на таблицу. Пользователям также требуется ALTER TABLE разрешение при использовании параметров, требующих операций языка определения данных (DDL), таких как отключение ограничений.

  • При массовом импорте данных с помощью BULK INSERT или INSERT ... SELECT * FROM OPENROWSET(BULK...)файл данных должен быть доступен для операций чтения с помощью профиля безопасности процесса SQL Server (если пользователь входит в систему с использованием предоставленного имени входа SQL Server) или имени входа Microsoft Windows, используемого при делегированной безопасности. Кроме того, пользователь должен иметь ADMINISTER BULK OPERATIONS разрешение на чтение файла.

Примечание.

Массовый импорт в секционированное представление не поддерживается, и попытки массового импорта данных в секционированное представление завершаются неудачно.