Использование файлов данных и файлов форматирования

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Простейшая программа массового копирования выполняет следующие действия.

  1. Вызывает bcp_init, чтобы указать массовое копирование (задать BCP_OUT ) из таблицы или представления в файл данных.

  2. Вызывает bcp_exec для выполнения операции массового копирования.

Файл данных создается в собственном режиме; следовательно, данные из всех столбцов таблицы или представления хранятся в файле данных в том же формате, что и в базе данных. Затем файл можно с помощью операции массового копирования скопировать на сервер, выполнив те же шаги и установив значение DB_IN вместо DB_OUT. Это возможно только в случае, когда структура исходной и целевой таблиц идентична. Результирующий файл данных также может быть входным в программу bcp с помощью переключателя /n (собственный режим).

Чтобы массово скопировать результирующий набор инструкции Transact-SQL, а не непосредственно из таблицы или представления:

  1. Вызовите bcp_init , чтобы указать массовое копирование, но укажите ЗНАЧЕНИЕ NULL для имени таблицы.

  2. Вызов bcp_control с параметром EOption для BCPHINTS и iValue, заданным для указателя на строку SQLTCHAR, содержащую инструкцию Transact-SQL.

  3. Вызовите bcp_exec для выполнения операции массового копирования.

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

Чтобы создать файл данных, в котором данные столбца хранятся в другом формате, чем в таблице, вызовите bcp_columns, чтобы указать, сколько столбцов будет изменено, а затем вызовите bcp_colfmt для каждого столбца, формат которого требуется изменить. Это делается после вызова bcp_init , но перед вызовом bcp_exec. bcp_colfmt указывает формат, в котором данные столбца хранятся в файле данных. Его можно использовать при массовом копировании или выходе. Вы также можете использовать bcp_colfmt для задания конца строк и столбцов. Например, если данные не содержат символов табуляции, можно создать файл с разделителями табуляции с помощью bcp_colfmt , чтобы задать символ табуляции в качестве конца для каждого столбца.

При массовом копировании и использовании bcp_colfmt можно легко создать файл формата, описывающий файл данных, созданный путем вызова bcp_writefmt после последнего вызова bcp_colfmt.

При массовом копировании из файла данных, описанного в файле форматирования, считывает файл формата, вызывая bcp_readfmt после bcp_init , но до bcp_exec.

Функция bcp_control управляет несколькими параметрами при массовом копировании в SQL Server из файла данных. bcp_control задает параметры, такие как максимальное количество ошибок перед завершением, строка в файле, на котором запускается массовая копия, строка для остановки и размер пакета.

См. также

Выполнение операций массового копирования (ODBC)