Создание файла форматирования

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

SQL Server 2005 поддерживает два типа файлов форматирования. XML-файлы форматирования и файлы форматирования не в формате XML. Файл форматирования не в формате XML поддерживается более ранними версиями SQL Server. Как правило, в SQL Server 2005 XML-файлы форматирования и файлы форматирования не в формате XML взаимозаменяемы. Однако рекомендуется пользоваться XML-синтаксисом новых файлов форматирования, так как он обеспечивает ряд преимуществ перед файлами форматирования не в формате XML. Дополнительные сведения см. в разделе Общие сведения о файлах форматирования.

ms191516.note(ru-ru,SQL.90).gifПримечание.
Версия программы bcp (Bcp.exe), используемой для чтения файла форматирования, должна быть выше использованной при создании этого файла форматирования. Например, bcp от SQL Server 2005 сможет прочитать файл форматирования версии 8.0, который создан при помощи bcp от SQL Server 2000, но bcp от SQL Server 2000 не сможет прочитать файл форматирования версии 9.0, который создан bcp от SQL Server 2005.

В этом разделе описано применение программы bcp для создания файла форматирования для таблицы. Файл форматирования основывается на указанных параметрах типов данных (-n, -c, -w, -6 или -N) и разделителях таблиц или представлений.

Создание файла форматирования не в формате XML

Чтобы создать файл форматирования программой bcp, укажите параметр format, а вместо пути файла данных задайте значение nul. Параметр format требует также наличия параметра -f, например:

bcpтаблица_или_представлениеformat nul -fformat_file_name

ms191516.note(ru-ru,SQL.90).gifПримечание.
Для файлов форматирования не в формате XML рекомендуется использовать расширение FMT, например MyTable.fmt.

Сведения о структуре и полях файлов форматирования не в формате XML см. в разделе Основные сведения о файлах форматирования не в формате XML.

Примеры

Этот раздел содержит следующие примеры, которые показывают, как пользоваться командами bcp для создания файлов форматирования не в формате XML.

  • А. Создание файла форматирования не в формате XML для данных в собственном формате
  • Б. Создание файла форматирования не в формате XML для символьных данных
  • В. Создание файла форматирования не в формате XML для данных в собственном формате в кодировке Юникод
  • Г. Создание файла форматирования не в формате XML для символьных данных в кодировке Юникод

В этом примере используется таблица HumanResources.Department в базе данных AdventureWorks. В ней содержится четыре столбца: DepartmentID, Name, GroupName и ModifiedDate. Определение этой таблицы приведено в разделе Таблица Department (AdventureWorks).

ms191516.note(ru-ru,SQL.90).gifПримечание.
Adventure Works Cycles — это вымышленная производственная компания, которая используется для демонстрации концепций баз данных и сценариев работы с ними.

А. Создание файла форматирования не в формате XML для данных в собственном формате

В следующем примере создается XML-файл форматирования Department-n.xml для таблицы HumanResources.Department в базе данных AdventureWorks, в котором используются собственные типы данных. Содержимое созданного файла форматирования приведено после команды.

Команда bcp содержит следующие квалификаторы.

Квалификаторы Описание

formatnul-fformat_file

Задает файл форматирования не в формате XML.

-n

Указывает собственные типы данных.

-T

Указывает, что программа bcp устанавливает доверенное соединение с SQL Server при использовании встроенной системы безопасности. Если квалификатор -T не задан, то для успешного входа необходимо указать квалификаторы -U и -P.

В командной строке Windows введите следующую команду bcp:

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

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

9.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.

Б. Создание файла форматирования не в формате XML для символьных данных

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

Команда bcp содержит следующие квалификаторы.

Квалификаторы Описание

formatnul-fformat_file

Задает файл форматирования не в формате XML.

-c

Задает символьные данные.

-T

Указывает, что программа bcp устанавливает доверенное соединение с SQL Server при использовании встроенной системы безопасности. Если квалификатор -T не задан, то для успешного входа необходимо указать квалификаторы -U и -P.

В командной строке Windows введите следующую команду bcp:

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

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

9.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 для данных в собственном формате в кодировке Юникод

Чтобы создать для таблицы HumanResources.Department файл форматирования не в формате XML для данных в собственном формате с кодировкой Юникод, используется следующая команда:

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

Дополнительные сведения об использовании данных в собственном формате с кодировкой Юникод см. в разделе Использование собственного формата Юникода для импорта или экспорта данных.

Г. Создание файла форматирования не в формате XML для символьных данных в кодировке Юникод

Чтобы создать для таблицы HumanResources.Department файл форматирования не в формате XML для символьных данных в кодировке Юникод, использующий признак конца по умолчанию, применяется следующая команда:

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

Дополнительные сведения об использовании символьных данных в кодировке Юникод см. в разделе Использование символьного формата Юникода для импорта и экспорта данных.

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

Чтобы создать файл форматирования программой bcp, укажите параметр format, а вместо пути файла данных задайте значение nul. Параметр format всегда требует наличия параметра -f, а чтобы создать XML-файл форматирования, необходимо задать параметр -x, например:

bcpтаблица_или_представлениеformat nul-fformat_file_name-x

ms191516.note(ru-ru,SQL.90).gifПримечание.
Для XML-файлов форматирования рекомендуется использовать расширение XML, например MyTable.xml.

Сведения о структуре и полях XML-файлов форматирования см. в разделе Основные сведения о XML-файлах форматирования.

Примеры

Этот раздел содержит следующие примеры, которые показывают, как пользоваться командами bcp для создания XML-файлов форматирования.

  • А. Создание XML-файла форматирования для символьных данных
  • Б. Создание XML-файла форматирования для данных в собственном формате

В этом примере используется таблица HumanResources.Department в базе данных AdventureWorks. В ней содержится четыре столбца: DepartmentID, Name, GroupName и ModifiedDate. Определение этой таблицы приведено в разделе Таблица Department (AdventureWorks).

ms191516.note(ru-ru,SQL.90).gifПримечание.
Adventure Works Cycles — это вымышленная производственная компания, которая используется для демонстрации концепций баз данных и сценариев работы с ними.

А. Создание XML-файла форматирования для символьных данных

В следующем примере создается XML-файл форматирования Department.xml для таблицы AdventureWorks``HumanResources.Department. Файл форматирования использует формат символьных данных и признак конца поля, отличный от установленного по умолчанию (,). Содержимое созданного файла форматирования приведено после команды.

Команда bcp содержит следующие квалификаторы.

Квалификаторы

Описание

formatNULL-fformat_file-x

Задает XML-файл форматирования.

-c

Задает символьные данные.

-t,

Задает запятую (,) в качестве признака конца поля.

ms191516.note(ru-ru,SQL.90).gifПримечание.

Если файл данных использует признак конца поля, заданный по умолчанию (\t), аргумент -t не нужен.

-T

Указывает, что программа bcp устанавливает доверенное соединение с SQL Server при использовании встроенной системы безопасности. Если квалификатор -T не задан, то для успешного входа необходимо указать квалификаторы -U и -P.

В командной строке Windows введите следующую команду bcp:

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

Созданный файл форматирования Department-c.xml содержит следующие XML-элементы:

<?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-файлов форматирования. Сведения о символьных данных см. в разделе Применение символьного формата при импорте и экспорте данных.

Б. Создание XML-файла форматирования для данных в собственном формате

В следующем примере создается XML-файл форматирования Department-n.xml для таблицы HumanResources.Department в базе данных AdventureWorks, в котором используются собственные типы данных. Содержимое созданного файла форматирования приведено после команды.

Команда bcp содержит следующие квалификаторы.

Квалификаторы Описание

formatNULL-fformat_file-x

Задает XML-файл форматирования.

-n

Указывает собственные типы данных.

-T

Указывает, что программа bcp устанавливает доверенное соединение с SQL Server при использовании встроенной системы безопасности. Если квалификатор -T не задан, то для успешного входа необходимо указать квалификаторы -U и -P.

В командной строке Windows введите следующую команду bcp:

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

Созданный файл форматирования Department-n.xml содержит следующие XML-элементы:

<?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-файлов форматирования. Сведения об использовании собственных типов данных см. в разделе Использование собственного формата для импорта и экспорта данных.

Сопоставление полей данных со столбцами таблицы

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

См. также

Основные понятия

Образцы XML-файлов форматирования
Использование файла форматирования для привязки столбцов таблицы к полям файла данных
Пропуск столбца таблицы с помощью файла форматирования
Использование файла форматирования для пропуска поля данных
Основные сведения о файлах форматирования не в формате XML
Основные сведения о XML-файлах форматирования

Другие ресурсы

Программа bcp

Справка и поддержка

Получение помощи по SQL Server 2005