Указание форматов данных для совместимости с помощью программы bcp (SQL Server)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
В этой статье описываются атрибуты формата данных, запросы для конкретного поля и хранение данных по полю в файле формата, отличном от XML
Команда SQL Serverbcp . Понимание этих данных может быть полезным при массовом экспорте данных SQL Server для массового импорта в другую программу, например другую программу базы данных. Стандартные форматы данных в исходной таблице (native, character или Unicode) могут быть несовместимы с форматом данных, ожидаемым другой программой. Если несовместимость существует, когда вы экспортируете данные, необходимо описать формат данных.
Примечание.
Если вы не знакомы с форматами данных для импорта или экспорта данных, ознакомьтесь с форматами данных для массового импорта или массового экспорта (SQL Server).
Атрибуты формата данных в инструкции bcp
Команда bcp позволяет указать структуру каждого поля в файле данных в виде указанных ниже атрибутов формата данных.
Тип файла хранилища
Тип файла хранилища описывает, каким образом данные хранятся в файле данных. Данные можно экспортировать в файл данных как тип таблицы базы данных (собственный формат), в его символьном представлении (символьном формате) или как любой тип данных, в котором поддерживается неявное преобразование; например, копирование небольшого объекта в виде int. Определяемые пользователем типы данных экспортируются в качестве базовых типов. Дополнительные сведения см. в разделе "Указание типа хранилища файлов с помощью bcp (SQL Server)".
Длина префикса
Для наиболее компактного хранения файлов при массовом экспорте данных собственного формата в файл данных команда bcp ставит перед каждым полем один или несколько знаков, которые указывают длину этого поля. Эти символы называются символами префикса длины. Дополнительные сведения см. в разделе "Указание длины префикса" в файлах данных с помощью bcp (SQL Server).
Длина поля
Длина поля указывает максимальное количество символов, необходимых для представления данных в символьном формате. Если данные хранятся в собственном формате, то длина поля уже известна. Дополнительные сведения см. в разделе "Указание длины поля" с помощью bcp (SQL Server).
Признак конца поля
Для символьных полей данных можно определить символы, которые являются разделителями полей и строк в файле данных, указав признак конца поляи признак конца строки. Символы признака конца представляют собой один из способов сообщения программе, считывающей файл данных, где заканчивается одно поле или строка и начинается другое. Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).
Обзор приглашений, относящихся к полям
Если интерактивная команда bcp содержит параметр in или out , но не содержит одновременно параметр формата файла (-f) или параметр формата данных (-n, -c, -wили -N), для каждого столбца в исходной или целевой таблице команда предлагает по очереди ввести указанные атрибуты. В каждой строке команда bcp предоставляет значение по умолчанию на основе типа данных SQL Server столбца таблицы. Принятие значений по умолчанию для всех приглашений эквивалентно указанию собственного формата (-n) в командной строке. В каждом приглашении значение по умолчанию выводится в квадратных скобках: [значение по умолчанию]. Чтобы согласиться с указанным значением по умолчанию, нажмите клавишу ВВОД. Чтобы указать другое значение, введите его в приглашении.
Пример
В следующем примере команда bcp используется для массового интерактивного экспорта данных из таблицы HumanResources.myTeam
в файл myTeam.txt
. Перед выполнением примера следует создать эту таблицу. Сведения о таблице и ее создании см. в разделе HumanResources.myTeam Sample Table (SQL Server).
Команда не указывает ни файл форматирования, ни тип данных, поэтому программа bcp запрашивает сведения о формате данных. В командной строке Microsoft Windows введите:
bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T
Для каждого столбца программа bcp запрашивает значения, относящиеся к полю. В следующем примере показаны относящиеся к полям приглашения для столбцов таблицы EmployeeID
и Name
, и для каждого столбца предлагается тип хранения файла по умолчанию (собственный формат). Длины префиксов столбцов EmployeeID
и Name
равны 0 и 2 соответственно. Пользователь указывает запятую (,
) в качестве признака конца поля.
Enter the file storage type of field EmployeeID [smallint]:
Enter prefix-length of field EmployeeID [0]:
Enter field terminator [none]:,
Enter the file storage type of field Name [nvarchar]:
Enter prefix length of field Name [2]:
Enter field terminator [none]:,
.
.
.
Аналогичные приглашения (при необходимости) последовательно выводятся для каждого столбца таблицы.
Хранение данных по полю в файле форматирования, отличном от XML
После указания всех столбцов таблицы команда bcp предлагает сформировать файл форматирования в формате, отличном от XML, в который будут записаны предоставленные сведения о полях данных (см. предыдущий пример). Если вы решили создать файл форматирования, вы можете экспортировать данные из этой таблицы или импортировать подобные структурированные данные в SQL Server.
Примечание.
Файл форматирования можно использовать для массового импорта данных из файла данных в экземпляр SQL Server или для массового экспорта данных из таблицы, не требуя изменения формата. Дополнительные сведения см. в статье Файлы форматирования для импорта или экспорта данных (SQL Server).
В следующем примере создается файл форматирования в формате, myFormatFile.fmt
отличном от XML:
Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]myFormatFile.fmt
Имя по умолчанию для файла форматирования — bcp.fmt, но можно указать и другое имя файла.
Примечание.
Для файла данных, использующего только один формат данных для типа файлового хранилища, например символьный или собственный, можно быстро создать файл форматирования без экспорта и импорта данных, воспользовавшись параметром format . Этот подход гораздо проще и позволяет создавать как XML-файлы форматирования, так и файлы форматирования в формате, отличном от XML. Дополнительные сведения см. в статье Создание файла форматирования (SQL Server).
Связанные задачи
См. также
Нет.