Файлы форматирования для импорта или экспорта данных (SQL Server)
Если выполняется массовый импорт данных в таблицу SQL Server или массовый экспорт данных из таблицы, можно использовать файл форматирования для сохранения всех все сведений о формате, необходимых для массового экспорта или массового импорта данных. Это включает сведения о формате каждого поля в файле данных для этой таблицы.
SQL Server 2012 поддерживает два типа файлов форматирования: XML-файлы и файлы форматирования в формате, отличном от XML. Файлы форматирования как в XML, так и в другом формате, содержат описания каждого поля в файле данных, а XML-файлы форматирования содержат еще описания соответствующих столбцов таблицы. Как правило, XML-файлы и файлы форматирования в формате, отличном от XML взаимозаменяемы. Однако рекомендуется пользоваться XML-синтаксисом новых файлов форматирования, так как он обеспечивает ряд преимуществ перед файлами форматирования в формате, отличном от XML. Дополнительные сведения см. в разделе XML-файлы форматирования (SQL Server).
В этом разделе.
Преимущества файлов форматирования
Примеры файлов форматирования
Когда необходим файл форматирования?
Связанные задачи
Преимущества файлов форматирования
Предоставляет гибкую систему записи файлов данных, которая вообще не требует или требует лишь небольших правок для совместимости с другими форматами данных или для чтения файлов данных, созданных в другом программном обеспечении.
Позволяет выполнять массовый импорт данных без необходимости добавлять или удалять ненужные данные, а также изменять порядок существующих данных в файле данных. Файлы форматирования особенно полезны в том случае, если существует несоответствие между полями в файле данных и столбцами в таблице.
Примеры файлов форматирования
В следующих примерах показана структура файлов форматирования в формате, отличном от XML, и XML-файлов форматирования. Эти файлы форматирования соответствуют таблице HumanResources.myTeam в образце базы данных AdventureWorks2012 . Эта таблица содержит четыре столбца: EmployeeID, Name, Title и ModifiedDate.
Примечание |
---|
Дополнительные сведения о таблице и способе ее создания см. в разделе Образец таблицы HumanResources.myTeam (SQL Server). |
А.Использование файла форматирования в формате, отличном от XML
Следующий файл форматирования в формате, отличном от XML использует собственный формат данных SQL Server для таблицы HumanResources.myTeam. Этот файл форматирования был создан с помощью следующей команды bcp:
bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Fmt -n -T
The contents of this format file are as follows: 9.0
4
1 SQLSMALLINT 0 2 "" 1 EmployeeID ""
2 SQLNCHAR 2 100 "" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 100 "" 3 Title SQL_Latin1_General_CP1_CI_AS
4 SQLNCHAR 2 100 "" 4 Background SQL_Latin1_General_CP1_CI_AS
Дополнительные сведения см. в разделе Файлы формата, отличные от XML (SQL Server).
[В начало]
Б.Использование XML-файла форматирования
Следующий XML-файл форматирования использует собственный формат данных SQL Server для таблицы HumanResources.myTeam. Этот файл форматирования был создан с помощью следующей команды bcp:
bcp AdventureWorks.HumanResources.myTeam format nul -f myTeam.Xml -x -n -T
Файл форматирования содержит:
<?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="NativePrefix" LENGTH="1"/>
<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="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
Дополнительные сведения см. в разделе XML-файлы форматирования (SQL Server).
[В начало]
Когда необходим файл форматирования?
Инструкция INSERT... SELECT * FROM OPENROWSET(BULK...) всегда требует наличия файла форматирования.
- Для bcp или BULK INSERT использование файла форматирования в простых ситуациях необязательно и в этом редко возникает необходимость. Однако при выполнении сложных операций массового импорта файл форматирования очень часто необходим.
Файлы форматирования необходимы, если:
один и тот же файл данных используется в качестве источника для нескольких таблиц с разными схемами;
число полей в файле данных отличается от числа столбцов в целевой таблице, например:
целевая таблица содержит по крайней мере один столбец, для которого либо задано значение по умолчанию, либо разрешено значение NULL;
пользователи не имеют разрешений на выполнение инструкций SELECT/INSERT в одном или нескольких столбцах таблицы;
один и тот же файл данных используется для двух или более таблиц с разными схемами.
порядок столбцов в файле данных отличается от порядка столбцов в таблице;
завершающие символы или длины префиксов отличаются в столбцах файла данных.
Примечание |
---|
Если файл форматирования отсутствует и в команде bcp задан параметр формата данных (-n, -c, -w или -N) или в операции BULK INSERT задан параметр DATAFILETYPE, указанный формат данных используется как метод интерпретации полей в файле данных по умолчанию. |
[В начало]
Связанные задачи
Использование файла форматирования для массового импорта данных (SQL Server)
Пропуск столбца таблицы с помощью файла форматирования (SQL Server)
Использование файла форматирования для пропуска поля данных (SQL Server)
[В начало]
См. также
Основные понятия
Файлы формата, отличные от XML (SQL Server)
XML-файлы форматирования (SQL Server)
Форматы данных для массового экспорта или импорта (SQL Server)