--- title: "Non-XML Format Files (SQL Server) | Microsoft Docs" ms.custom: "" ms.date: "03/14/2017" ms.prod: "sql" ms.prod_service: "database-engine, sql-database, sql-data-warehouse, pdw" ms.service: "" ms.component: "import-export" ms.reviewer: "" ms.suite: "sql" ms.technology: - "dbe-bulk-import-export" ms.tgt_pltfrm: "" ms.topic: "article" helpviewer_keywords: - "non-XML format files" - "format files [SQL Server], non-XML format files" - "bulk importing [SQL Server], format files" ms.assetid: f566db3e-0a3b-4a61-9c84-49f8d42f5760 caps.latest.revision: 63 author: "douglaslMS" ms.author: "douglasl" manager: "craigg" ms.workload: "On Demand" monikerRange: ">= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || = sqlallproducts-allversions" --- # Non-XML Format Files (SQL Server) [!INCLUDE[appliesto-ss-asdb-asdw-pdw-md](../../includes/appliesto-ss-asdb-asdw-pdw-md.md)] In [!INCLUDE[ssCurrent](../../includes/sscurrent-md.md)], two types of format files are supported for bulk exporting and importing: *non-XML format files* and *XML format files*. **In this Topic:** - [Benefits](#Benefits) - [Structure of Non-XML Format Files](#Structure) - [Example of a Non-XML Format File](#Examples) - [Related Tasks](#RelatedTasks) ## Benefits of Non-XML Format Files - You can create a non-XML format file automatically by specifying the **format** option in a **bcp** command. - When you specify an existing format file in a **bcp** command, the command uses the values that are recorded in the format file and does not prompt you for the file storage type, prefix length, field length, or field terminator. - You can create a format file for a particular data type such as character data or native data. - You can create a non-XML format file that contains interactively specified attributes for each data field. For more information, see [Specify Data Formats for Compatibility when Using bcp (SQL Server)](../../relational-databases/import-export/specify-data-formats-for-compatibility-when-using-bcp-sql-server.md). > [!NOTE] > XML format files offer several advantages over non-XML format files. For more information, see [XML Format Files (SQL Server)](../../relational-databases/import-export/xml-format-files-sql-server.md). ## Structure of Non-XML Format Files A non-XML format file is a text file that has a specific structure. The non-XML format file contains information about the file storage type, prefix length, field length, and field terminator of every table column. The following illustration illustrates the format-file fields for a sample non-XML format file. ![Identifies the fields of a non-XML format file](../../relational-databases/import-export/media/mydepart-fmt-ident-c.gif) The **Version** and **Number of columns** fields occur one time only. Their meanings are describes in the following table. |Format-file field|Description| |------------------------|-----------------| |Version|Version number of the **bcp** utility:

9.0 = [!INCLUDE[ssVersion2005](../../includes/ssversion2005-md.md)]

10.0 = [!INCLUDE[ssKatmai](../../includes/sskatmai-md.md)]

11.0 = [!INCLUDE[ssSQL11](../../includes/sssql11-md.md)]

12.0 = [!INCLUDE[ssSQL14](../../includes/sssql14-md.md)]

The version number is recognized only by **bcp**, not by [!INCLUDE[tsql](../../includes/tsql-md.md)].



Note: The version of the **bcp** utility (Bcp.exe) used to read a format file must be the same as, or a later version than was used to create the format file. For example, [!INCLUDE[ssSQL11](../../includes/sssql11-md.md)]**bcp** can read a version 10.0 format file, which is generated by [!INCLUDE[ssKatmai](../../includes/sskatmai-md.md)]**bcp**, but [!INCLUDE[ssKatmai](../../includes/sskatmai-md.md)]**bcp** cannot read a version 12.0 format file, which is generated by [!INCLUDE[ssSQL14](../../includes/sssql14-md.md)]**bcp**.| |Number of columns|Number of fields in the data file. This number must be the same in all rows.| The other format-file fields describe the data fields that are to be bulk imported or exported. Each data field requires a separate row in the format file. Every format-file row contains values for the format-file fields that are described in the following table. |Format-file field|Description| |------------------------|-----------------| |**Host file field order**|A number that indicates the position of each field in the data file. The first field in the row is 1, and so on.| |**Host file data type**|Indicates the data type that is stored in a given field of the data file. With ASCII data files, use SQLCHAR; for native format data files, use default data types. For more information, see [Specify File Storage Type by Using bcp (SQL Server)](../../relational-databases/import-export/specify-file-storage-type-by-using-bcp-sql-server.md).| |**Prefix length**|Number of length prefix characters for the field. Valid prefix lengths are 0, 1, 2, 4, and 8. To avoid specifying the length prefix, set this to 0. A length prefix must be specified if the field contains NULL data values. For more information, see [Specify Prefix Length in Data Files by Using bcp (SQL Server)](../../relational-databases/import-export/specify-prefix-length-in-data-files-by-using-bcp-sql-server.md).| |**Host file data length**|Maximum length, in bytes, of the data type stored in the particular field of the data file.

If you are creating a non-XML format file for a delimited text file, you can specify 0 for the host file data length of every data field. When a delimited text file having a prefix length of 0 and a terminator is imported, the field-length value is ignored, because the storage space used by the field equals the length of the data plus the terminator.

For more information, see [Specify Field Length by Using bcp (SQL Server)](../../relational-databases/import-export/specify-field-length-by-using-bcp-sql-server.md).| |**Terminator**|Delimiter to separate the fields in a data file. Common terminators are comma (,), tab (\t), and end of line (\r\n). For more information, see [Specify Field and Row Terminators (SQL Server)](../../relational-databases/import-export/specify-field-and-row-terminators-sql-server.md).| |**Server column order**|Order in which columns appear in the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] table. For example, if the fourth field in the data file maps to the sixth column in a [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] table, the server column order for the fourth field is 6.

To prevent a column in the table from receiving any data from the data file, set the server column order value to 0.| |**Server column name**|Name of the column copied from the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] table. The actual name of the field is not required, but the field in the format file must not be blank.| |**Column collation**|The collation used to store character and Unicode data in the data file.| > [!NOTE] > You can modify a format file to let you bulk import from a data file in which the number or order of the fields are different from the number or order of table columns. For more information, see the [Related Tasks](#RelatedTasks) list, later in this topic. ## Example of a Non-XML Format File The following example shows a previously created non-XML format file (`myDepartmentIdentical-f-c.fmt`). This file describes a character-data field for every column in the `HumanResources.Department` table in the `AdventureWorks2012` sample database. The generated format file, `myDepartmentIdentical-f-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 "" ``` > [!NOTE] > For an illustration that shows the format-file fields in relation to this sample non-XML format file, see [Structure of Non-XML Format Files](#Structure), earlier in this topic. ## Related Tasks - [Create a Format File (SQL Server)](../../relational-databases/import-export/create-a-format-file-sql-server.md) - [Use a Format File to Bulk Import Data (SQL Server)](../../relational-databases/import-export/use-a-format-file-to-bulk-import-data-sql-server.md) - [Use a Format File to Skip a Table Column (SQL Server)](../../relational-databases/import-export/use-a-format-file-to-skip-a-table-column-sql-server.md) - [Use a Format File to Skip a Data Field (SQL Server)](../../relational-databases/import-export/use-a-format-file-to-skip-a-data-field-sql-server.md) - [Use a Format File to Map Table Columns to Data-File Fields (SQL Server)](../../relational-databases/import-export/use-a-format-file-to-map-table-columns-to-data-file-fields-sql-server.md) ## See Also [bcp Utility](../../tools/bcp-utility.md) [Create a Format File (SQL Server)](../../relational-databases/import-export/create-a-format-file-sql-server.md) [XML Format Files (SQL Server)](../../relational-databases/import-export/xml-format-files-sql-server.md) [Format Files for Importing or Exporting Data (SQL Server)](../../relational-databases/import-export/format-files-for-importing-or-exporting-data-sql-server.md)