Поделиться через


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

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

ПримечаниеПримечание

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

В этом разделе:

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

  • Обзор приглашений, относящихся к полям

  • Хранение данных полей в файле форматирования в формате, отличном от XML

  • Связанные задачи

  • См. также

Атрибуты формата данных в инструкции 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 столбца таблицы. Принятие значений по умолчанию для всех приглашений эквивалентно указанию формата native (-n) в командной строке. В каждом приглашении значение по умолчанию выводится в квадратных скобках: [default]. Чтобы согласиться с указанным значением по умолчанию, нажмите клавишу ВВОД. Чтобы указать другое значение, введите его в приглашении.

Пример

В следующем примере команда 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, но можно указать и другое имя файла.

ПримечаниеПримечание

Для файла данных, использующего только один формат данных для типа файлового хранилища, например символьный или собственный (native), можно быстро создать файл форматирования без экспорта и импорта данных, воспользовавшись параметром format. Этот подход гораздо проще и позволяет создавать как XML-файлы форматирования, так и файлы форматирования в формате, отличном от XML. Дополнительные сведения см. в разделе Создание файла форматирования (SQL Server).

[В начало]

Связанные задачи

См. также

Отсутствует.

См. также

Справочник

Программа bcp

Типы данных (Transact-SQL)

Основные понятия

Массовый импорт и экспорт данных (SQL Server)

Форматы данных для массового экспорта или импорта (SQL Server)