Создание файла форматирования (SQL Server)
При массовом импорте в таблицу SQL Server или массовом экспорте данных из таблицы вы можете воспользоваться файлом форматирования, который обеспечивает гибкую структуру записи файлов данных и практически не требует изменения для поддержки соответствия с другими форматами данных или для считывания данных из других программ.
SQL Server поддерживает два типа файлов форматирования: XML-файлы форматирования и файлы форматирования не в формате XML. Файл форматирования не в формате XML поддерживается более ранними версиями SQL Server.
Как правило, XML-файлы и файлы форматирования в формате, отличном от XML взаимозаменяемы. Однако рекомендуется пользоваться XML-синтаксисом новых файлов форматирования, так как он обеспечивает ряд преимуществ перед файлами форматирования в формате, отличном от XML.
Примечание |
---|
Версия программы bcp (Bcp.exe), используемая для чтения файла форматирования, должна соответствовать версии, использованной при создании этого файла форматирования, или быть старше нее. Например, программа bcp в SQL Server 2008 может считать файл формата версии 9.0, созданный программой bcp в SQL Server 2005, но программа bcp в SQL Server 2005 не может считать файл формата версии 10.0, созданный программой bcp в SQL Server 2008. |
В этом разделе описано применение программы bcp для создания файла форматирования для таблицы. Файл форматирования основан на заданных параметрах типов данных (-n, -c, -w или -N) и разделителях таблиц или представлений.
Создание файла форматирования в формате, отличном от XML
Чтобы создать файл форматирования с помощью программы bcp, укажите аргумент format, а вместо пути файла данных задайте значение nul. Параметр format требует также наличия параметра -f, например:
bcp table_or_view format nul -f format_file_name
Примечание |
---|
Для файлов форматирования в формате, отличном от XML рекомендуется использовать расширение FMT, например MyTable.fmt. |
Сведения о структуре и полях файлов форматирования в формате, отличном от XML см. в разделе Файлы формата, отличные от XML (SQL Server).
Примеры
Этот раздел содержит следующие примеры, которые показывают, как пользоваться командами bcp для создания файлов форматирования в формате, отличном от XML.
А. Создание файла форматирования в формате, отличном от XML для данных в собственном формате
Б. Создание файла форматирования в формате, отличном от XML для символьных данных
В. Создание файла форматирования в формате, отличном от XML для данных в собственном формате в кодировке Юникод
Г. Создание файла форматирования в формате, отличном от XML для символьных данных в кодировке Юникод
В этом примере используется таблица HumanResources.Department в образце базы данных AdventureWorks2012 . Таблица HumanResources.Department содержит четыре столбца: DepartmentID, Name, GroupName и ModifiedDate.
Примечание |
---|
Компания Adventure Works Cycles — вымышленная фирма-изготовитель, на примере которой демонстрируются основные понятия и сценарии базы данных. |
А.Создание файла форматирования в формате, отличном от XML для данных в собственном формате
В следующем примере создается XML-файл форматирования Department-n.xml для таблицы AdventureWorks2012 HumanResources.Department, в котором используются собственные типы данных. Содержимое созданного файла форматирования приведено после команды.
Команда bcp содержит следующие квалификаторы.
Квалификаторы |
Описание |
---|---|
format nul -f format_file |
Задает файл форматирования в формате, отличном от XML. |
-n |
Указывает собственные типы данных. |
-T |
Указывает, что программа bcp устанавливает доверительное соединение с SQL Server с использованием встроенной безопасности. Если параметр -T не указан, для успешного входа необходимо указать параметры -U и -P. |
В командной строке Windows введите следующую команду bcp:
bcp AdventureWorks2012.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 (SQL Server).
Б.Создание файла форматирования в формате, отличном от XML для символьных данных
В следующем примере создается XML-файл форматирования Department.fmt для таблицы AdventureWorks2012 HumanResources.Department. Файл форматирования использует формат символьных данных и признак конца поля, отличный от установленного по умолчанию (,). Содержимое созданного файла форматирования приведено после команды.
Команда bcp содержит следующие квалификаторы.
Квалификаторы |
Описание |
---|---|
format nul -f format_file |
Задает файл форматирования в формате, отличном от XML. |
-c |
Задает символьные данные. |
-T |
Указывает, что программа bcp устанавливает доверительное соединение с SQL Server с использованием встроенной безопасности. Если параметр -T не указан, для успешного входа необходимо указать параметры -U и -P. |
В командной строке Windows введите следующую команду bcp:
bcp AdventureWorks2012.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 (SQL Server).
В.Создание файла форматирования в формате, отличном от XML для данных в собственном формате в кодировке Юникод
Чтобы создать для таблицы HumanResources.Department файл форматирования в формате, отличном от XML для данных в собственном формате с кодировкой Юникод, используется следующая команда:
bcp AdventureWorks2012.HumanResources.Department format nul -T -N -f Department-n.fmt
Дополнительные сведения об использовании данных в собственном формате с кодировкой Юникод см. в разделе Использование собственного формата Юникода для импорта или экспорта данных (SQL Server).
Г.Создание файла форматирования в формате, отличном от XML для символьных данных в кодировке Юникод
Чтобы создать для таблицы HumanResources.Department файл форматирования в формате, отличном от XML для символьных данных в кодировке Юникод, использующий признак конца по умолчанию, применяется следующая команда:
bcp AdventureWorks2012.HumanResources.Department format nul -T -w -f Department-w.fmt
Дополнительные сведения об использовании символьных данных в кодировке Юникод см. в разделе Использование символьного формата Юникода для импорта и экспорта данных (SQL Server).
Создание XML-файла форматирования
Чтобы создать файл форматирования с помощью программы bcp, укажите аргумент format, а вместо пути файла данных задайте значение nul. Параметр format всегда требует наличия параметра -f, а чтобы создать XML-файл форматирования, необходимо задать параметр -x, например:
bcp table_or_view format nul -f format_file_name -x
Примечание |
---|
Для XML-файлов форматирования рекомендуется использовать расширение XML, например MyTable.xml. |
Сведения о структуре и полях XML-файлов форматирования см. в разделе XML-файлы форматирования (SQL Server).
Примеры
В этом разделе содержатся следующие примеры использования команд bcp для создания XML-файлов форматирования.
А. Создание XML-файла форматирования для символьных данных
Б. Создание XML-файла форматирования для данных в собственном формате
В этом примере используется таблица HumanResources.Department в образце базы данных AdventureWorks2012 . Таблица HumanResources.Department содержит четыре столбца: DepartmentID, Name, GroupName и ModifiedDate.
Примечание |
---|
Компания Adventure Works Cycles — вымышленная фирма-изготовитель, на примере которой демонстрируются основные понятия и сценарии базы данных. |
А.Создание XML-файла форматирования для символьных данных
В следующем примере создается XML-файл форматирования Department.xml для таблицы AdventureWorks2012 HumanResources.Department. Файл форматирования использует формат символьных данных и признак конца поля, отличный от установленного по умолчанию (,). Содержимое созданного файла форматирования приведено после команды.
Команда bcp содержит следующие квалификаторы.
Квалификаторы |
Описание |
||
---|---|---|---|
format nul -f format_file -x |
Задает XML-файл форматирования. |
||
-c |
Задает символьные данные. |
||
-t , |
Задает запятую (,) в качестве признака конца поля.
|
||
-T |
Указывает, что программа bcp устанавливает доверительное соединение с SQL Server с использованием встроенной безопасности. Если параметр -T не указан, для успешного входа необходимо указать параметры -U и -P. |
В командной строке Windows введите следующую команду bcp:
bcp AdventureWorks2012.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-файлы форматирования (SQL Server). Сведения о символьных данных см. в разделе Использование символьного формата для импорта и экспорта данных (SQL Server).
Б.Создание XML-файла форматирования для данных в собственном формате
В следующем примере создается XML-файл форматирования Department-n.xml для таблицы HumanResources.Department. в котором используются собственные типы данных. Содержимое созданного файла форматирования приведено после команды.
Команда bcp содержит следующие квалификаторы.
Квалификаторы |
Описание |
---|---|
format nul -f format_file -x |
Задает XML-файл форматирования. |
-n |
Указывает собственные типы данных. |
-T |
Указывает, что программа bcp устанавливает доверительное соединение с SQL Server с использованием встроенной безопасности. Если параметр -T не указан, для успешного входа необходимо указать параметры -U и -P. |
В командной строке Windows введите следующую команду bcp:
bcp AdventureWorks2012.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-файлы форматирования (SQL Server). Сведения об использовании собственных типов данных см. в разделе Использование собственного формата для импорта или экспорта данных.
Сопоставление полей данных со столбцами таблицы
Созданный при помощи программы bcp файл форматирования надлежащим образом описывает все столбцы таблицы. Его можно изменить, переставив или исключив некоторые из строк. Это позволяет согласовать файл форматирования с файлом данных, если поля в нем не сопоставлены непосредственно со столбцами таблицы. Дополнительные сведения см. в следующих разделах:
Пропуск столбца таблицы с помощью файла форматирования (SQL Server)
Использование файла форматирования для пропуска поля данных (SQL Server)
См. также
Справочник
Основные понятия
Пропуск столбца таблицы с помощью файла форматирования (SQL Server)
Использование файла форматирования для пропуска поля данных (SQL Server)