Создание файла форматирования (SQL Server)Create a Format File (SQL Server)

ОБЛАСТЬ ПРИМЕНЕНИЯ: ДаSQL Server ДаБаза данных SQL Azure ДаAzure Synapse Analytics (Хранилище данных SQL) ДаParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL Data Warehouse) YesParallel Data Warehouse

При массовом импорте в таблицу SQL ServerSQL Server или массовом экспорте данных из таблицы вы можете воспользоваться файлом форматирования, который обеспечивает гибкую структуру записи файлов данных и практически не требует изменения для поддержки соответствия с другими форматами данных или для считывания данных из других программ.When you bulk import into a SQL ServerSQL Server table or bulk export data from a table, you can use a format file to a flexible system for writing data files that requires little or no editing to comply with other data formats or to read data files from other software programs.

SQL ServerSQL Server поддерживает два типа файлов форматирования: файлы форматирования в формате, отличном от XML, и XML-файлы форматирования.support two types of format file: non-XML format and XML format. Файл форматирования не в формате XML поддерживается более ранними версиями SQL ServerSQL Server.The non-XML format is the original format that is supported by earlier versions of SQL ServerSQL Server.

Как правило, XML-файлы и файлы форматирования в формате, отличном от XML взаимозаменяемы.Generally, XML and non-XML format files are interchangeable. Однако рекомендуется пользоваться XML-синтаксисом новых файлов форматирования, так как он обеспечивает ряд преимуществ перед файлами форматирования в формате, отличном от XML.However, we recommend that you use the XML syntax for new format files because they provide several advantages over non-XML format files.

Примечание

Версия служебной программы bcp (Bcp.exe), которая используется для чтения файла форматирования, должна соответствовать версии, используемой при создании этого файла форматирования, или более поздней версии.The version of the bcp utility (Bcp.exe) used to read a format file must be the same as, or later than the version used to create the format file. Например, служебная программа SQL Server 2012 (11.x)SQL Server 2012 (11.x) bcp может считать файл форматирования версии 10.0, созданный служебной программой SQL Server 2008SQL Server 2008 bcp, но служебная программа SQL Server 2008SQL Server 2008 bcp не может считать файл форматирования версии 11.0, созданный служебной программой SQL Server 2012 (11.x)SQL Server 2012 (11.x) bcp.For example, SQL Server 2012 (11.x)SQL Server 2012 (11.x) bcp can read a version 10.0 format file, which is generated by SQL Server 2008SQL Server 2008 bcp, but SQL Server 2008SQL Server 2008 bcp cannot read a version 11.0 format file, which is generated by SQL Server 2012 (11.x)SQL Server 2012 (11.x) bcp.

В этом разделе описано применение программы bcp для создания файла форматирования для таблицы.This topic describes how to use the bcp utility to create a format file for a particular table. Файл форматирования основан на заданных параметрах типов данных ( -n, -c, -wили -N) и разделителях таблиц или представлений.The format file is based on the data-type option specified (-n, -c, -w,or -N) and the table or view delimiters.

Создание файла форматирования в формате, отличном от XMLCreating a Non-XML Format File

Чтобы создать файл форматирования с помощью служебной программы bcp , укажите аргумент format , а вместо пути файла данных задайте значение nul .To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. Параметр format также требует наличия параметра -f , например:The format option also requires the -f option, such as:

bcp таблица_или_представление format nul -fимя_файла_форматаbcp table_or_view format nul -fformat_file_name

Примечание

Для файлов форматирования в формате, отличном от XML рекомендуется использовать расширение FMT, например MyTable.fmt.To distinguish a non-XML format file, we recommend that you use .fmt as the file name extension, for example, MyTable.fmt.

Сведения о структуре и полях файлов форматирования в формате, отличном от XML, см. в разделе Файлы формата, отличные от XML (SQL Server).For information about the structure and fields of non-XML format files, see Non-XML Format Files (SQL Server).

ПримерыExamples

В этом разделе приведены следующие примеры, которые показывают, как пользоваться командами bcp для создания файлов форматирования в формате, отличном от XML:This section contains the following examples that show how to use bcp commands to create a non-XML format file:

  • A.A. Создание файла форматирования в формате, отличном от XML для данных в собственном форматеCreating a non-XML format file for native data

  • Б.B. Создание файла форматирования в формате, отличном от XML для символьных данныхCreating a non-XML format file for character data

  • В.C. Создание файла форматирования в формате, отличном от XML для данных в собственном формате в кодировке ЮникодCreating a non-XML format file for Unicode native data

  • Г.D. Создание файла форматирования в формате, отличном от XML для символьных данных в кодировке ЮникодCreating a non-XML format file for Unicode character data

  • Е.F. Использование файла форматирования с параметром кодовой страницыUsing a format file with the code page option

В этом примере используется таблица HumanResources.Department в образце базы данных AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. Таблица HumanResources.Department содержит четыре столбца: DepartmentID, Name, GroupNameи ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

A.A. Создание файла форматирования в формате, отличном от XML для данных в собственном форматеCreating a non-XML format file for native data

В следующем примере создается XML-файл форматирования Department-n.xmlдля таблицы AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. в котором используются собственные типы данных.The format file uses native data types. Содержимое созданного файла форматирования приведено после команды.The contents of the generated format file are presented after the command.

Команда bcp содержит следующие квалификаторы:The bcp command contains the following qualifiers.

КвалификаторыQualifiers ОписаниеDescription
formatnul-f формат_файлаformatnul-f format_file Задает файл форматирования в формате, отличном от XML.Specifies the non-XML format file.
-n-n Указывает собственные типы данных.Specifies native data types.
-T-T Указывает, что программа bcp устанавливает доверительное соединение с SQL ServerSQL Server с использованием встроенной безопасности.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Если параметр -T не указан, для входа необходимо указать параметры -U и -P .If -T is not specified, you must specify -U and -P to successfully log in.

В командной строке Windows введите следующую команду bcp :At the Windows command prompt, enter the following bcp command:

bcp AdventureWorks2012.HumanResources.Department format nul -T -n -f Department-n.fmt  

Созданный файл форматирования Department-n.fmtсодержит следующие данные:The generated format file, Department-n.fmt, contains the following information:

12.0  
4  
1  SQLSMALLINT   0       2       ""   1     DepartmentID         ""  
2  SQLNCHAR      2       100     ""   2     Name                 SQL_Latin1_General_CP1_CI_AS  
3  SQLNCHAR      2       100     ""   3     GroupName            SQL_Latin1_General_CP1_CI_AS  
4  SQLDATETIME   0       8       ""   4     ModifiedDate         ""  

Дополнительные сведения см в разделе Файлы формата, отличные от XML (SQL Server).For more information, see Non-XML Format Files (SQL Server).

Б.B. Создание файла форматирования в формате, отличном от XML для символьных данныхCreating a non-XML format file for character data

В следующем примере создается XML-файл форматирования Department.fmtдля таблицы AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.fmt, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. Файл форматирования использует формат символьных данных и признак конца поля, отличный от установленного по умолчанию (,).The format file uses character data formats and a non-default field terminator (,). Содержимое созданного файла форматирования приведено после команды.The contents of the generated format file are presented after the command.

Команда bcp содержит следующие квалификаторы:The bcp command contains the following qualifiers.

КвалификаторыQualifiers ОписаниеDescription
formatnul-f формат_файлаformatnul-f format_file Задает файл форматирования в формате, отличном от XML.Specifies a non-XML format file.
-c-c Задает символьные данные.Specifies character data.
-T-T Указывает, что программа bcp устанавливает доверительное соединение с SQL ServerSQL Server с использованием встроенной безопасности.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Если параметр -T не указан, для входа необходимо указать параметры -U и -P .If -T is not specified, you must specify -U and -P to successfully log in.

В командной строке Windows введите следующую команду bcp :At the Windows command prompt, enter the following bcp command:

bcp AdventureWorks2012.HumanResources.Department format nul -c -f Department-c.fmt -T  

Созданный файл форматирования Department-c.fmtсодержит следующие данные:The generated format file, Department-c.fmt, contains the following information:

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 (SQL Server).For more information, see Non-XML Format Files (SQL Server).

В.C. Создание файла форматирования в формате, отличном от XML для данных в собственном формате в кодировке ЮникодCreating a non-XML format file for Unicode native data

Чтобы создать для таблицы HumanResources.Department файл форматирования в формате, отличном от XML для данных в собственном формате с кодировкой Юникод, используется следующая команда:To create a non-XML format file for Unicode native data for the HumanResources.Department table, use the following command:

bcp AdventureWorks2012.HumanResources.Department format nul -T -N -f Department-n.fmt  

Дополнительные сведения об использовании собственного формата данных Юникод см. в статье Использование собственного формата Юникод для импорта или экспорта данных (SQL Server).For more information about how to use Unicode native data, see Use Unicode Native Format to Import or Export Data (SQL Server).

Г.D. Создание файла форматирования в формате, отличном от XML для символьных данных в кодировке ЮникодCreating a non-XML format file For Unicode character data

Чтобы создать для таблицы HumanResources.Department файл форматирования в формате, отличном от XML для символьных данных в кодировке Юникод, использующий признак конца по умолчанию, применяется следующая команда:To create a non-XML format file for Unicode character data for the HumanResources.Department table that uses default terminators, use the following command:

bcp AdventureWorks2012.HumanResources.Department format nul -T -w -f Department-w.fmt  

Дополнительные сведения об использовании символьного формата данных Юникод см. в статье Использование символьного формата Юникод для импорта или экспорта данных (SQL Server).For more information about how to use Unicode character data, see Use Unicode Character Format to Import or Export Data (SQL Server).

Е.F. Использование файла форматирования с параметром кодовой страницыUsing a format file with the code page option

При создании файла форматирования с помощью команды bcp (то есть с помощью bcp format) сведения о параметрах сортировки и кодовой странице будут записаны в файл форматирования.If you create a format file using the bcp command (that is, by using bcp format), information about the collation/code page will be written in the format file.
В следующем примере файла форматирования для таблицы с 5 столбцами указаны параметры сортировки.The following example format file for a table with 5 columns includes the collation.

13.0  
5  
1  SQLCHAR         0       0       "**\t**"         1     c_0          Cyrillic_General_CS_AS  
2  SQLCHAR         0       0       "**\t**"         2     c_1          Cyrillic_General_CS_AS  
3  SQLCHAR         0       3000    "**\t**"         3     c_2          Cyrillic_General_CS_AS  
4  SQLCHAR         0       5       "**\t**"         4     c_3          ""  
5  SQLCHAR         0       41      "!!!\r\r\n"      5     c_4          ""  
  

Если вы пытаетесь импортировать данные в SQL ServerSQL Server с помощью bcp in -c -C65001 -f format_file …" или "BULK INSERT/OPENROWSET ... FORMATFILE='format_file' CODEPAGE=65001 ...", сведения о параметрах сортировки или кодовой странице имеют приоритет над параметром 65001.If you try to import data into SQL ServerSQL Server using bcp in -c -C65001 -f format_file ..." or "BULK INSERT/OPENROWSET ... FORMATFILE='format_file' CODEPAGE=65001 ...", information about the collation/code page will have priority over 65001 option.
Таким образом, после создания из файла форматирования необходимо вручную удалить сведения о параметрах сортировки перед началом импорта данных обратно в SQL ServerSQL Server.Therefore, if you generate a format file, you must manually delete the collation info from the generated format file before you start importing data back into SQL ServerSQL Server.
Ниже приведен пример файла форматирования без сведений о параметрах сортировки.The following is an example of the format file without the collation info.

13.0  
5  
1  SQLCHAR         0       0       "**\t**"         1     c_0              ""  
2  SQLCHAR         0       0       "**\t**"         2     c_1              ""  
3  SQLCHAR         0       3000    "**\t**"         3     c_2              ""  
4  SQLCHAR         0       5       "**\t**"         4     c_3              ""  
5  SQLCHAR         0       41      "!!!\r\r\n"      5     c_4              ""  

Создание XML-файла форматированияCreating an XML Format File

Чтобы создать файл форматирования с помощью служебной программы bcp , укажите аргумент format , а вместо пути файла данных задайте значение nul .To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. Параметр format всегда требует наличия параметра -f , а чтобы создать XML-файл форматирования, необходимо задать параметр -x , например:The format option always requires the -f option, and to create an XML format file, you must also specify the -x option, such as:

bcp таблица_или_представление format nul-f имя_файла_формата -xbcp table_or_view format nul-f format_file_name -x

Примечание

Для XML-файлов форматирования рекомендуется использовать расширение XML, например MyTable.xml.To distinguish an XML format file, we recommend that you use .xml as the file name extension, for example, MyTable.xml.

Сведения о структуре и полях файлов форматирования в формате XML, см. в разделе XML-файлы форматирования (SQL Server).For information about the structure and fields of XML format files, see XML Format Files (SQL Server).

ПримерыExamples

В этом разделе содержатся следующие примеры использования команд bcp для создания XML-файлов форматирования.This section contains the following examples that show how to use bcp commands to create an XML format file:

  • A.A. Создание XML-файла форматирования для символьных данныхCreating an XML format file for character data
  • Б.B. Создание XML-файла форматирования для данных в собственном форматеCreating an XML format file for native data

В этом примере используется таблица HumanResources.Department в образце базы данных AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. Таблица HumanResources.Department содержит четыре столбца: DepartmentID, Name, GroupNameи ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

Примечание

Компания Adventure Works Cycles — это вымышленная производственная компания, которая используется для демонстрации концепций баз данных и сценариев работы с ними.Adventure Works Cycles is a fictional manufacturing company used to demonstrate database concepts and scenarios.

A.A. Создание XML-файла форматирования для символьных данныхCreating an XML format file for character data

В следующем примере создается XML-файл форматирования Department.xmlдля таблицы AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. Файл форматирования использует формат символьных данных и признак конца поля, отличный от установленного по умолчанию (,).The format file uses character data formats and a non-default field terminator (,). Содержимое созданного файла форматирования приведено после команды.The contents of the generated format file are presented after the command.

Команда bcp содержит следующие квалификаторы:The bcp command contains the following qualifiers.

КвалификаторыQualifiers ОписаниеDescription
formatnul-f формат_файла -xformatnul-f format_file -x Задает XML-файл форматирования.Specifies the XML format file.
-c-c Задает символьные данные.Specifies character data.
-t ,-t , Задает запятую ( , ) в качестве признака конца поля.Specifies a comma (,) as the field terminator.

Примечание. Если в файле данных используется признак конца поля по умолчанию (\t), то параметр -t не нужен.Note: If the data file uses the default field terminator (\t), the -t switch is unnecessary.
-T-T Указывает, что программа bcp устанавливает доверительное соединение с SQL ServerSQL Server с использованием встроенной безопасности.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Если параметр -T не указан, для входа необходимо указать параметры -U и -P .If -T is not specified, you must specify -U and -P to successfully log in.

В командной строке Windows введите следующую команду bcp :At the Windows command prompt, enter the following bcp command:

bcp AdventureWorks2012.HumanResources.Department format nul -c -x -f Department-c.xml -t, -T  

Созданный файл форматирования Department-c.xmlсодержит следующие XML-элементы:The generated format file, Department-c.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
 <RECORD>  
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>  
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>  
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>  
 </ROW>  
</BCPFORMAT>  

Сведения о синтаксисе файлов такого формата см. в статье Файлы формата XML (SQL Server).For information about the syntax of this format file, see XML Format Files (SQL Server). Дополнительные сведения о символьных данных см. в статье Использование символьного формата для импорта и экспорта данных (SQL Server).For information about character data, see Use Character Format to Import or Export Data (SQL Server).

Б.B. Создание XML-файла форматирования для данных в собственном форматеCreating an XML format file for native data

В следующем примере создается XML-файл форматирования Department-n.xmlдля таблицы HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the HumanResources.Department table. в котором используются собственные типы данных.The format file uses native data types. Содержимое созданного файла форматирования приведено после команды.The contents of the generated format file are presented after the command.

Команда bcp содержит следующие квалификаторы:The bcp command contains the following qualifiers.

КвалификаторыQualifiers ОписаниеDescription
formatnul-f формат_файла -xformatnul-f format_file -x Задает XML-файл форматирования.Specifies the XML format file.
-n-n Указывает собственные типы данных.Specifies native data types.
-T-T Указывает, что программа bcp устанавливает доверительное соединение с SQL ServerSQL Server с использованием встроенной безопасности.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Если параметр -T не указан, для входа необходимо указать параметры -U и -P .If -T is not specified, you must specify -U and -P to successfully log in.

В командной строке Windows введите следующую команду bcp :At the Windows command prompt, enter the following bcp command:

bcp AdventureWorks2012.HumanResources.Department format nul -x -f Department-n.xml -n -T  

Созданный файл форматирования Department-n.xmlсодержит следующие XML-элементы:The generated format file, Department-n.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
 <RECORD>  
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>  
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>  
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>  
 </ROW>  
</BCPFORMAT>  

Сведения о синтаксисе файлов такого формата см. в статье Файлы формата XML (SQL Server).For information about the syntax of this format file, see XML Format Files (SQL Server). Дополнительные сведения об использовании собственных данных см. в статье Использование собственного формата для импорта и экспорта данных (SQL Server).For information about how to use native data, see Use Native Format to Import or Export Data (SQL Server).

Сопоставление полей данных со столбцами таблицыMapping Data Fields to Table Columns

Созданный при помощи служебной программы bcpфайл форматирования надлежащим образом отображает все столбцы таблицы.As created by bcp, a format file describes all the table columns in order. Его можно изменить, переставив или исключив некоторые из строк.You can modify a format file to rearrange or omit table rows. Это позволяет согласовать файл форматирования с файлом данных, если поля в нем не сопоставлены непосредственно со столбцами таблицы.This lets you customize a format file to a data file whose fields do not map directly to the table columns. Дополнительные сведения см. в следующих разделах:For more information, see the following topics:

См. также:See Also

bcp Utility bcp Utility
Использование файла форматирования для сопоставления столбцов таблицы с полями файла данных (SQL Server) Use a Format File to Map Table Columns to Data-File Fields (SQL Server)
Пропуск столбца таблицы с помощью файла форматирования (SQL Server) Use a Format File to Skip a Table Column (SQL Server)
Использование файла форматирования для пропуска поля данных (SQL Server) Use a Format File to Skip a Data Field (SQL Server)
Файлы формата, отличные от XML (SQL Server) Non-XML Format Files (SQL Server)
XML-файлы форматирования (SQL Server)XML Format Files (SQL Server)