Основные сведения о файлах форматирования не в формате XML

В Microsoft SQL Server 2000 и более ранних версиях массовый экспорт и импорт работает только с одним типом файла форматирования. Эта функция поддерживается в Microsoft SQL Server 2005. В SQL Server 2005 в качестве альтернативы поддерживаются также XML-файлы форматирования, а файлы форматирования старого типа обозначаются как файлы форматирования не в формате XML.

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

Обычно файлы форматирования создаются для определенного формата данных при помощи команды bcp одним из следующих способов.

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

Структура файлов форматирования не в формате XML

Файл форматирования не в формате XML — это текстовый файл, имеющий специальную структуру. Он содержит сведения о типе хранения, длине префикса, длине и признаке конца поля для каждого из столбцов таблицы.

На следующей схеме показаны поля учебного файла форматирования не в формате XML.

Идентифицирует поля файла в формате, отличном от XML

Поля Version и Number of columns встречаются только один раз. Описание этих параметров приводится в следующей таблице.

Поле файла форматирования

Описание

Версия

Номер версии программы bcp в следующем виде:

6.5 = SQL Server version 6.5

7.0 = SQL Server version 7.0

8.0 = SQL Server 2000

9.0 = SQL Server 2005

Программа bcp распознает номер версии, а Transact-SQL — нет.

ms191479.note(ru-ru,SQL.90).gifПримечание.

Используемая для считывания формата файла версия программы bcp (Bcp.exe) должна быть такой же или более поздней, чем версия, используемая при создании файла форматирования. Например, SQL Server 2005 bcp может считывать файл форматирования версии 8.0, созданный программой SQL Server 2000 bcp, но SQL Server 2000 bcp не может считывать файл форматирования версии 9.0, созданный программой SQL Server 2005 bcp.

Число столбцов

Число полей в файле данных. Это значение должно быть одинаковым во всех строках.

Другие поля файла форматирования описывают поля данных, массовый импорт и экспорт которых должен быть произведен. Для каждого поля данных необходима отдельная строка файла форматирования. Каждая строка файла форматирования содержит значения полей файла форматирования, описание которых находится в следующей таблице.

Поле файла форматирования Описание

Порядковый номер поля в файле данных

Число, указывающее на расположение поля в файле данных. Первое поле в строке имеет номер 1 и т.д.

Тип данных файла

Указывает тип данных, хранящихся в этом поле файла данных. Для ASCII-файлов используйте SQLCHAR; для файлов данных в собственном формате используйте типы данных по умолчанию. Дополнительные сведения см. в разделе Указание типа файлового хранилища с помощью программы bcp.

Длина префикса

Количество символов префикса для поля. Допускается длина префикса 0, 1, 2, 4 или 8. Чтобы не указывать длину префикса, установите это значение равным 0. Если поле содержит значения данных NULL, указание длины префикса обязательно. Дополнительные сведения см. в разделе Определение длины префикса в файлах данных.

Длина данных в файле

Максимальная длина (в байтах) для типа данных, содержащегося в соответствующем поле файла данных.

Если для текстового файла с разделителями создается файл форматирования не формата XML, то для длины данных в файле каждого поля данных можно определить значение 0. Когда текстовой файл с разделителями обладает длиной префикса, равной 0, и происходит импорт признака конца поля, значение длины поля не обрабатывается, так как используемое для поля место хранилища равно сумме длины данных и признака конца поля.

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

Признак конца

Разделитель полей в файле данных. Обычно признаком конца строки является запятая (,) или символ табуляции (\t), а строки — символы перевода строки и возврата каретки (\r\n). Дополнительные сведения см. в разделе Определение признаков конца поля и строки.

Порядковый номер столбца на сервере

Порядковый номер, под которым столбец находится в таблице SQL Server. Например, если четвертое поле в файле данных соответствует шестому столбцу в таблице SQL Server, порядковый номер столбца на сервере для четвертого поля равен 6.

Чтобы не загружать в таблицу данные из файла, установите значение порядкового номера столбца на сервере в значение 0.

Имя столбца на сервере

Имя столбца, копируемого из таблицы SQL Server. Использовать фактическое имя поля необязательно, но это поле в файле форматирования не должно быть пустым.

Параметры сортировки столбца

Параметры сортировки, используемые для хранения в файле символьных данных и данных в Юникоде.

ms191479.note(ru-ru,SQL.90).gifПримечание.
Можно изменить файл форматирования так, чтобы обеспечить возможность массового импорта данных из файла, в котором количество или порядок полей отличаются от количества или порядка столбцов в таблице. Дополнительные сведения см. в разделе Использование файла форматирования для установки соответствия полей столбцам при массовом импорте данных.

Примеры

В следующем примере демонстрируется ранее созданный файл форматирования (myDepartmentIdentical-f-c.fmt) не в XML-формате. В этом файле описываются поля символьных данных для каждого столбца таблицы HumanResources.Department в образце таблицы AdventureWorks.

Созданный файл форматирования myDepartmentIdentical-f-c.fmt содержит следующие данные:

9.0
4
1       SQLCHAR       0       7       "\t"     1     DepartmentID     ""
2       SQLCHAR       0       100     "\t"     2     Name             SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     "\t"     3     GroupName        SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate     ""
ms191479.note(ru-ru,SQL.90).gifПримечание.
Схему, показывающую поля файла форматирования в этом образце файла форматирования не в формате XML, см. выше в разделе «Структура файлов форматирования не в формате XML».

См. также

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

Создание файла форматирования
Основные сведения о XML-файлах форматирования
Работа с файлами форматирования

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

Программа bcp

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

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