Использование файлов данных и файлов форматирования
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Простейшая программа массового копирования выполняет следующие действия.
Вызывает bcp_init, чтобы указать массовое копирование (задать BCP_OUT ) из таблицы или представления в файл данных.
Вызывает bcp_exec для выполнения операции массового копирования.
Файл данных создается в собственном режиме; следовательно, данные из всех столбцов таблицы или представления хранятся в файле данных в том же формате, что и в базе данных. Затем файл можно с помощью операции массового копирования скопировать на сервер, выполнив те же шаги и установив значение DB_IN вместо DB_OUT. Это возможно только в случае, когда структура исходной и целевой таблиц идентична. Результирующий файл данных также может быть входным в программу bcp с помощью переключателя /n (собственный режим).
Чтобы массово скопировать результирующий набор инструкции Transact-SQL, а не непосредственно из таблицы или представления:
Вызовите bcp_init , чтобы указать массовое копирование, но укажите ЗНАЧЕНИЕ NULL для имени таблицы.
Вызов bcp_control с параметром EOption для BCPHINTS и iValue, заданным для указателя на строку SQLTCHAR, содержащую инструкцию Transact-SQL.
Вызовите 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 задает параметры, такие как максимальное количество ошибок перед завершением, строка в файле, на котором запускается массовая копия, строка для остановки и размер пакета.