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

При выполнении массового экспорта данных Microsoft SQL Server для массового импорта в другую программу, например другую базу данных, форматы данных по умолчанию (собственный, символьный или Юникод) исходной таблицы могут быть несовместимыми с макетом данных, ожидаемым другой программой. В этом случае при экспорте данных необходимо описать макет данных.

ms190759.note(ru-ru,SQL.90).gifПримечание.
Описание форматов данных для импорта или экспорта см. в разделе Форматы данных для импорта или экспорта данных.

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

  • Тип хранения файла
    Атрибут тип хранения файла описывает, каким образом данные хранятся в файле данных. Экспорт данных может быть выполнен в файл данных в формате таблиц баз данных (собственный формат), в символьном представлении (символьный формат) или в любом формате данных, поддерживающем неявное преобразование, например копирование данных типа smallint как int. Экспорт определяемых пользователем типов данных выполняется так, как их базовых типов. Дополнительные сведения см. в разделе Указание типа файлового хранилища с помощью программы bcp.
  • Длина префикса
    Чтобы обеспечить наиболее компактное файловое хранилище для массового экспорта данных в собственном формате в файл данных, команда bcp добавляет перед каждым полем один или несколько символов, указывающих длину поля. Эти символы называются символами префикса длины. Дополнительные сведения см. в разделе Определение длины префикса в файлах данных.
  • Длина поля
    Длина поля указывает максимальное количество символов, необходимых для представления данных в символьном формате. Если данные хранятся в собственном формате, то длина поля уже известна. Дополнительные сведения см. в разделе Указание длины поля с помощью программы bcp.
  • Признак конца поля
    Для символьных полей данных необязательный символ признака конца позволяет помечать завершение каждого поля в файле данных (с помощью признака конца поля) и конец каждой строки (с помощью признака конца строки). Символы признака конца представляют собой один из способов сообщения программе, считывающей файл данных, где заканчивается одно поле или строка и начинается другое. Дополнительные сведения см. в разделе Определение признаков конца поля и строки.

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

Если интерактивная команда bcp содержит параметр in или out , но не содержит ключ файла форматирования (-f) или ключ формата данных (-n, -c, -w или -N), то для каждого столбца в исходной или целевой таблице команда по очереди запрашивает каждый из предыдущих атрибутов. В каждом приглашении команда bcp указывает значение по умолчанию на основе типа данных SQL Server столбца таблицы. Принимать значения по умолчанию для всех приглашений — то же самое, что указание собственного формата (-n) в командной строке. В каждом приглашении значение по умолчанию выводится в квадратных скобках: [default]. Чтобы согласиться с указанным значением по умолчанию, нажмите клавишу ВВОД. Чтобы указать другое значение, введите его в приглашении.

Пример

В следующем примере команда bcp применяется для выполнения интерактивного массового экспорта данных из таблицы HumanResources.myTeam в файл myTeam.txt. Перед выполнением примера следует создать эту таблицу. Дополнительные сведения о таблице и способе ее создания см. в разделе Создание таблицы HumanResources.myTeam.

Команда не указывает ни файл форматирования, ни тип данных, поэтому программа 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.

ms190759.note(ru-ru,SQL.90).gifПримечание.
Файл форматирования можно использовать для массового импорта данных из файла данных в экземпляр 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, но можно указать и другое имя файла.

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

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

Этот раздел содержит следующие подразделы.

Подраздел Атрибут формата данных

Указание типа файлового хранилища с помощью программы bcp

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

Определение длины префикса в файлах данных

Содержит сведения об указании длины префикса в команде bcp .

Указание длины поля с помощью программы bcp

Содержит сведения об указании длины поля в команде bcp .

Определение признаков конца поля и строки

Содержит сведения об указании признака конца поля и строки в команде bcp .

Хранение данных в символьном формате

Содержит сведения о хранении форматированных символьных данных в экспортированном файле данных.

См. также

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

Сценарии массового импорта и экспорта данных

Другие ресурсы

Программа bcp
Типы данных (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005