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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Описание

Версия

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

7.0 = SQL Server version 7.0

8.0 = SQL Server 2000

9.0 = SQL Server 2005

10.0 = SQL Server 2008

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

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

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

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

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

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

Описание

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

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

Созданный файл форматирования 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».