Основные сведения о файлах форматирования в формате, отличном от XML
В SQL Server 2000 и более ранних версиях массовый экспорт и импорт работает только с одним типом файла форматирования. Этот тип поддерживается в SQL Server 2005 и более поздних версиях, также в качестве альтернативы поддерживаются XML-файлы форматирования, а файлы форматирования старого типа обозначаются как файлы форматирования в формате, отличном от XML.
Примечание |
---|
XML-файлы форматирования имеют ряд дополнительных преимуществ. Дополнительные сведения см. в разделе Файлы форматирования для импорта или экспорта данных. |
Обычно файлы форматирования создаются для определенного формата данных при помощи команды bcp одним из следующих способов.
Можно создать такой тип файла форматирования, как символьные данные или собственные данные, определяя параметр format в команде bcp. Дополнительные сведения см. в разделе Создание файла форматирования.
Можно создать файл форматирования в формате, отличном от XML, который будет содержать определяемые в интерактивном режиме атрибуты для каждого поля данных. Дополнительные сведения см. в разделе Указание форматов данных для совместимости с помощью программы bcp.
Примечание Если в команде bcp задан существующий файл форматирования, она использует значения, которые в нем содержатся, поэтому не запрашивает у пользователя сведений о типе сохранения, длине префикса, длине или признаке конца поля.
Структура файлов форматирования в формате, отличном от 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». |
См. также