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

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

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

XML-файлы форматирования имеют ряд дополнительных преимуществ. Дополнительные сведения см. в разделе Файлы форматирования для импорта или экспорта данных.

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

  • Можно создать такой тип файла форматирования, как символьные данные или собственные данные, определяя параметр format в команде bcp. Дополнительные сведения см. в разделе Создание файла форматирования.

  • Можно создать файл форматирования в формате, отличном от XML, который будет содержать определяемые в интерактивном режиме атрибуты для каждого поля данных. Дополнительные сведения см. в разделе Указание форматов данных для совместимости с помощью программы bcp.

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

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

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

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

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

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

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

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

Описание

Версия

Номер версии для файла форматирования. Для большинства версий SQL Server версия файла форматирования не отличается от версии программы bcp (Bcp.exe), как в следующем примере.

Версия SQL ServerВерсия файла форматированияверсия bcp1
Версия SQL Server 7.07.07.0
SQL Server 2000 8.08.0
SQL Server 2005 9.09.0
SQL Server 2008 10.010.0
SQL Server 2008 R2 10.010.50

1 Номер версии распознается только программой bcp, но не языком Transact-SQL.

ПримечаниеПримечание
Версия программы bcp, используемой для чтения файла форматирования, должна быть выше использованной при создании этого файла форматирования. Например, программа bcp в SQL Server 2008 может считать файл форматирования версии 9.0, созданный программой bcp в SQL Server 2005, но программа bcp в SQL Server 2005 не может считать файл форматирования версии 10.0, созданный программой bcp в SQL Server 2008 или SQL Server 2008 R2.

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

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

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

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

Описание

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

Число, указывающее на расположение поля в файле данных. Первое поле в строке имеет номер 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. Использовать фактическое имя поля необязательно, но это поле в файле форматирования не должно быть пустым.

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

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

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

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

Примеры

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

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

10.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     ""
ПримечаниеПримечание

Схему, показывающую поля файла форматирования в этом образце файла форматирования не в формате XML, см. выше в разделе «Структура файлов форматирования в формате, отличном от XML».