Использование файлов форматирования, отличных от XML (SQL Server)

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Преимущества файлов форматирования, отличных от XML

  • Можно автоматически создать файл формата, отличного от XML, указав параметр format в команде bcp .

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

  • Можно создать файл формата для определенного типа данных, например символьных данных или собственных данных.

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

Заметка

XML-файлы формата имеют несколько преимуществ над файлами формата, отличными от XML. Дополнительные сведения см. в разделе XML Format Files (SQL Server) (SQL Server).

Заметка

Этот синтаксис, включая массовую вставку, не поддерживается в Azure Synapse Analytics. В Azure Synapse Analytics и других облачных платформах баз данных выполните перемещение данных с помощью инструкции COPY в фабрике данных Azure или с помощью инструкций T-SQL, таких как COPY INTO и PolyBase.

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

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

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

Identifies the fields of a non-xml format file.

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

Поле файла форматирования Description
Версия Номер версии программы bcp :

9.0 = SQL Server 2005 (9.x)

10.0 = SQL Server 2008 (10.0.x)

11.0 = SQL Server 2012 (11.x)

12.0 = SQL Server 2014 (12.x)

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



Примечание. Версия служебной программы bcp (Bcp.exe), используемая для считывания файла форматирования, должна быть той же или более поздней по сравнению с программой, с помощью которой создавался файл форматирования. Например, SQL Server 2012 (11.x)bcp может прочитать файл формата версии 10.0, который создается SQL Server 2008 (10.0.x)bcp, но SQL Server 2008 (10.0.x)bcp не может прочитать файл формата версии 12.0, который создается SQL Server 2014 (12.x)bcp.
Число столбцов Число полей в файле данных. Это значение должно быть одинаковым во всех строках.

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

Поле файла форматирования Description
Порядковый номер поля в файле данных Число, указывающее на расположение поля в файле данных. Первое поле в строке имеет номер 1 и т. д.
Тип данных файла Указывает тип данных, хранящихся в этом поле файла данных. Для ASCII-файлов используйте SQLCHAR; для файлов данных в собственном формате используйте типы данных по умолчанию. Дополнительные сведения см. в разделе "Указание типа хранилища файлов с помощью bcp (SQL Server)".
Длина префикса Количество символов префикса для поля. Допустимыми значениями длины префикса являются 0, 1, 2, 4 и 8. Чтобы не указывать длину префикса, установите это значение равным 0. Если поле содержит значения данных NULL, указание длины префикса обязательно. Дополнительные сведения см. в разделе "Указание длины префикса" в файлах данных с помощью bcp (SQL Server).
Длина данных в файле Максимальная длина (в байтах) для типа данных, содержащегося в соответствующем поле файла данных.

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

Дополнительные сведения см. в разделе "Указание длины поля" с помощью bcp (SQL Server).
Признак конца Разделитель полей в файле данных. Обычно признаком конца строки является запятая (,) или символ табуляции (\t), а строки — символы перевода строки и возврата каретки (\r\n). Дополнительные сведения см. в разделе Определение признаков конца поля и строки (SQL Server).
Порядковый номер столбца на сервере Порядок отображения столбцов в таблице SQL Server. Например, если четвертое поле в файле данных сопоставляется с шестым столбцом в таблице SQL Server, порядок столбцов сервера для четвертого поля равен 6.

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

Заметка

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

Пример файла форматирования, отличного от XML

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

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

12.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".

Связанные задачи

Далее