Указание форматов данных для совместимости с помощью программы bcp (SQL Server)

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

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

команда SQL Server bcp. Эти сведения могут быть полезны при массовом экспорте SQL Server данных для массового импорта в другую программу, например в другую программу базы данных. Стандартные форматы данных в исходной таблице (native, character или Unicode) могут быть несовместимы с форматом данных, ожидаемым другой программой. Если несовместимость существует, когда вы экспортируете данные, необходимо описать формат данных.

Примечание

Если вы не знакомы с форматами данных для импорта или экспорта данных, см. статью Форматы данных для массового импорта или массового экспорта (SQL Server).

Атрибуты формата данных в инструкции bcp

Команда bcp позволяет указать структуру каждого поля в файле данных в виде указанных ниже атрибутов формата данных.

  • Тип файла хранилища

    Тип файла хранилища описывает, каким образом данные хранятся в файле данных. Данные можно экспортировать в файл данных в формате таблиц баз данных (собственный формат), в символьном представлении (символьный формат) или в любом формате данных, поддерживающем неявное преобразование, например копирование данных типа smallint как 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 (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).

Нет.

Дальнейшие действия