Crear un archivo de formato (SQL Server)Create a Format File (SQL Server)

Cuando se realiza una importación masiva de datos en una tabla de SQL ServerSQL Server o una exportación masiva de datos desde una tabla, se puede utilizar un archivo de formato para un sistema flexible de escribir archivos de datos que requiera poca o ninguna modificación para adaptarlos a otros formatos de datos o para leer archivos de datos de otros programas de software.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 admite dos tipos de archivos de formato: XML y no XML. support two types of format file: non-XML format and XML format. El formato no XML es el formato original compatible con versiones anteriores de SQL ServerSQL Server.The non-XML format is the original format that is supported by earlier versions of SQL ServerSQL Server.

Por lo general, los archivos de formato XML y no XML son intercambiables.Generally, XML and non-XML format files are interchangeable. Sin embargo, es recomendable utilizar la sintaxis XML para los nuevos archivos de formato porque proporciona varias ventajas con relación a los archivos de formato no XML.However, we recommend that you use the XML syntax for new format files because they provide several advantages over non-XML format files.

Nota

La versión de la utilidad bcp (Bcp.exe) que se emplee para leer un archivo de formato debe ser la misma versión, o una versión posterior, a la que se use para crear el archivo de formato.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. Por ejemplo, SQL Server 2012SQL Server 2012bcp puede leer un formato de archivo de la versión 10.0, generado por SQL Server 2008SQL Server 2008bcp, pero SQL Server 2008SQL Server 2008bcp no puede leer un formato de archivo de la versión 11.0, generado por SQL Server 2012SQL Server 2012bcp.For example, SQL Server 2012SQL Server 2012bcp can read a version 10.0 format file, which is generated by SQL Server 2008SQL Server 2008bcp, but SQL Server 2008SQL Server 2008bcp cannot read a version 11.0 format file, which is generated by SQL Server 2012SQL Server 2012bcp.

En este tema se describe cómo utilizar la utilidad bcp para crear un archivo de formato para una tabla determinada.This topic describes how to use the bcp utility to create a format file for a particular table. El archivo de formato se basa en la opción de tipo de datos especificada (-n, -c, -wo -N) y en los delimitadores de la vista o de la tabla.The format file is based on the data-type option specified (-n, -c, -w,or -N) and the table or view delimiters.

Crear un archivo de formato no XMLCreating a Non-XML Format File

Si quiere usar un comando bcp para crear un archivo de formato, especifique el argumento format y use nul en lugar de una ruta de acceso de archivo de datos.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. La opción format también requiere la opción -f , como:The format option also requires the -f option, such as:

bcp table_or_view format nul -fformat_file_namebcp table_or_view format nul -fformat_file_name

Nota

Para distinguir un archivo de formato no XML, se recomienda utilizar .fmt como extensión del nombre de archivo, por ejemplo, miTabla.fmt.To distinguish a non-XML format file, we recommend that you use .fmt as the file name extension, for example, MyTable.fmt.

Para obtener más información sobre la estructura y los campos de los archivos de formato no XML, vea Archivos de formato no XML (SQL Server).For information about the structure and fields of non-XML format files, see Non-XML Format Files (SQL Server).

EjemplosExamples

Esta sección contiene los siguientes ejemplos que muestran cómo se usan los comandos de bcp para crear un archivo de formato no XML:This section contains the following examples that show how to use bcp commands to create a non-XML format file:

  • A.A. Crear un archivo de formato no XML para datos nativosCreating a non-XML format file for native data

  • B.B. Crear un archivo de formato no XML para datos de caracteresCreating a non-XML format file for character data

  • C.C. Crear un archivo de formato no XML para datos nativos UnicodeCreating a non-XML format file for Unicode native data

  • D.D. Crear un archivo de formato no XML para datos de caracteres UnicodeCreating a non-XML format file for Unicode character data

  • F.F. Usar un archivo de formato con la opción de página de códigosUsing a format file with the code page option

    Los ejemplos utilizan la tabla HumanResources.Department de la base de datos de ejemplo AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. La tabla HumanResources.Department tiene cuatro columnas: DepartmentID, Name, GroupNamey ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

A.A. Crear un archivo de formato no XML para datos nativosCreating a non-XML format file for native data

En el ejemplo siguiente se crea un archivo de formato XML, Department-n.xml, para la tabla AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. El archivo de formato utiliza tipos de datos nativos.The format file uses native data types. El contenido del archivo de formato generado se presenta después del comando.The contents of the generated format file are presented after the command.

El comando bcp contiene los calificadores siguientes.The bcp command contains the following qualifiers.

CalificadoresQualifiers DescripciónDescription
formatnul-f format_fileformatnul-f format_file Especifica el archivo de formato no XML.Specifies the non-XML format file.
-n Especifica tipos de datos nativos.Specifies native data types.
-T-T Especifica que la utilidad bcp se conecta a SQL ServerSQL Server con una conexión de confianza utilizando la seguridad integrada.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Si no se especifica -T , es necesario especificar -U y -P para poder iniciar sesión correctamente.If -T is not specified, you must specify -U and -P to successfully log in.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp :At the Windows command prompt, enter the following bcp command:

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

El archivo de formato generado, Department-n.fmt, contiene la siguiente información: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         ""  

Para obtener más información, vea Archivos de formato no XML (SQL Server).For more information, see Non-XML Format Files (SQL Server).

B.B. Crear un archivo de formato no XML para datos de caracteresCreating a non-XML format file for character data

En el ejemplo siguiente se crea un archivo de formato XML, Department.fmt, para la tabla AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.fmt, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. El archivo de formato usa formatos de datos de caracteres y un terminador de campo no predeterminado (,).The format file uses character data formats and a non-default field terminator (,). El contenido del archivo de formato generado se presenta después del comando.The contents of the generated format file are presented after the command.

El comando bcp contiene los calificadores siguientes.The bcp command contains the following qualifiers.

CalificadoresQualifiers DescripciónDescription
formatnul-f format_fileformatnul-f format_file Especifica un archivo de formato no XML.Specifies a non-XML format file.
-c-c Especifica los datos de caracteres.Specifies character data.
-T-T Especifica que la utilidad bcp se conecta a SQL ServerSQL Server con una conexión de confianza utilizando la seguridad integrada.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Si no se especifica -T , es necesario especificar -U y -P para poder iniciar sesión correctamente.If -T is not specified, you must specify -U and -P to successfully log in.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp :At the Windows command prompt, enter the following bcp command:

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

El archivo de formato generado, Department-c.fmt, contiene la siguiente información: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            ""  

Para obtener más información, vea Archivos de formato no XML (SQL Server).For more information, see Non-XML Format Files (SQL Server).

C.C. Crear un archivo de formato no XML para datos nativos UnicodeCreating a non-XML format file for Unicode native data

Para crear un archivo de formato no XML para datos nativos Unicode para la tabla HumanResources.Department, utilice el comando siguiente: 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  

Para obtener más información sobre cómo usar datos nativos Unicode, vea Usar el formato nativo Unicode para importar o exportar datos (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.D. Crear un archivo de formato no XML para datos de caracteres UnicodeCreating a non-XML format file For Unicode character data

Para crear un archivo de formato no XML para datos de caracteres Unicode para la tabla HumanResources.Department que usa terminadores predeterminados, use el comando siguiente: 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  

Para obtener más información sobre cómo usar datos de caracteres Unicode, vea Usar el formato de caracteres Unicode para importar o exportar datos (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.F. Usar un archivo de formato con la opción de página de códigosUsing a format file with the code page option

Si crea un archivo de formato con el comando bcp, es decir, con bcp format, la información sobre la intercalación o la página de código se escribirá en dicho archivo de formato.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.
El siguiente archivo de formato de ejemplo para una tabla con 5 columnas incluye la intercalación.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          ""  

Si intenta importar datos en SQL ServerSQL Server con bcp in –c –C65001 –f format_file …”If you try to import data into SQL ServerSQL Server using bcp in –c –C65001 –f format_file …” o “BULK INSERT/OPENROWSETor “BULK INSERT/OPENROWSET FORMATFILE='format_file' CODEPAGE=65001 …”, la información sobre la intercalación o página de códigos tendrá prioridad sobre la opción 65001.FORMATFILE='format_file' CODEPAGE=65001 …”, information about the collation/code page will have priority over 65001 option.
Por lo tanto, si genera un archivo de formato, debe eliminar manualmente la información de intercalación del archivo de formato generado antes de comenzar a importar datos en 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.
El siguiente es un ejemplo del archivo de formato sin la información de intercalación.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              ""  

Crear un archivo de formato XMLCreating an XML Format File

Si quiere usar un comando bcp para crear un archivo de formato, especifique el argumento format y use nul en lugar de una ruta de acceso de archivo de datos.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. La opción format siempre requiere la opción -f y, para crear un archivo de formato XML, también debe especificar la opción -x , como: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 table_or_view format nul-f format_file_name -xbcp table_or_view format nul-f format_file_name -x

Nota

Para distinguir un archivo de formato XML, se recomienda utilizar .xml como extensión de archivo, por ejemplo, miTabla.xml.To distinguish an XML format file, we recommend that you use .xml as the file name extension, for example, MyTable.xml.

Para obtener más información sobre la estructura y los campos de los archivos de formato XML, vea XML, archivos de formato (SQL Server).For information about the structure and fields of XML format files, see XML Format Files (SQL Server).

EjemplosExamples

Esta sección contiene los siguientes ejemplos, en los que se muestran cómo se usan los comandos bcp para crear un archivo de formato XML:This section contains the following examples that show how to use bcp commands to create an XML format file:

  • A.A. Crear un archivo de formato XML para datos de caracteresCreating an XML format file for character data

  • B.B. Crear un archivo de formato XML para datos nativosCreating an XML format file for native data

    Los ejemplos utilizan la tabla HumanResources.Department de la base de datos de ejemplo AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. La tabla HumanResources.Department tiene cuatro columnas: DepartmentID, Name, GroupNamey ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

Nota

Adventure Works Cycles es una compañía ficticia que se utiliza para mostrar situaciones y conceptos de bases de datos.Adventure Works Cycles is a fictional manufacturing company used to demonstrate database concepts and scenarios.

A.A. Crear un archivo de formato XML para datos de caracteresCreating an XML format file for character data

En el ejemplo siguiente se crea un archivo de formato XML, Department.xml, para la tabla AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. El archivo de formato usa formatos de datos de caracteres y un terminador de campo no predeterminado (,).The format file uses character data formats and a non-default field terminator (,). El contenido del archivo de formato generado se presenta después del comando.The contents of the generated format file are presented after the command.

El comando bcp contiene los calificadores siguientes.The bcp command contains the following qualifiers.

CalificadoresQualifiers DescripciónDescription
formatnul-f format_file -xformatnul-f format_file -x Especifica el archivo de formato XML.Specifies the XML format file.
-c-c Especifica los datos de caracteres.Specifies character data.
-t ,-t , Especifica una coma (,) como terminador de campo.Specifies a comma (,) as the field terminator.

Nota: Si el archivo de datos usa el terminador de campo predeterminado (\t), no es necesario el modificador -t .Note: If the data file uses the default field terminator (\t), the -t switch is unnecessary.
-T-T Especifica que la utilidad bcp se conecta a SQL ServerSQL Server con una conexión de confianza utilizando la seguridad integrada.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Si no se especifica -T , es necesario especificar -U y -P para poder iniciar sesión correctamente.If -T is not specified, you must specify -U and -P to successfully log in.

En el símbolo del sistema de Windows, escriba el siguiente comando 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  

El archivo de formato generado, Department-c.xml, contiene los elementos XML siguientes:The generated format file, Department-c.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="http://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>  

Para obtener más información sobre la sintaxis de este archivo de formato, vea XML, archivos de formato (SQL Server).For information about the syntax of this format file, see XML Format Files (SQL Server). Para obtener más información sobre los datos de caracteres, vea Usar el formato de caracteres para importar o exportar datos (SQL Server).For information about character data, see Use Character Format to Import or Export Data (SQL Server).

B.B. Crear un archivo de formato XML para datos nativosCreating an XML format file for native data

En el ejemplo siguiente se crea un archivo de formato XML, Department-n.xml, para la tabla HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the HumanResources.Department table. El archivo de formato utiliza tipos de datos nativos.The format file uses native data types. El contenido del archivo de formato generado se presenta después del comando.The contents of the generated format file are presented after the command.

El comando bcp contiene los calificadores siguientes.The bcp command contains the following qualifiers.

CalificadoresQualifiers DescripciónDescription
formatnul-f format_file -xformatnul-f format_file -x Especifica el archivo de formato XML.Specifies the XML format file.
-n Especifica tipos de datos nativos.Specifies native data types.
-T-T Especifica que la utilidad bcp se conecta a SQL ServerSQL Server con una conexión de confianza utilizando la seguridad integrada.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Si no se especifica -T , es necesario especificar -U y -P para poder iniciar sesión correctamente.If -T is not specified, you must specify -U and -P to successfully log in.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp :At the Windows command prompt, enter the following bcp command:

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

El archivo de formato generado, Department-n.xml, contiene los elementos XML siguientes:The generated format file, Department-n.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="http://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>  

Para obtener más información sobre la sintaxis de este archivo de formato, vea XML, archivos de formato (SQL Server).For information about the syntax of this format file, see XML Format Files (SQL Server). Para obtener más información sobre cómo usar datos nativos, vea Usar el formato nativo para importar o exportar datos (SQL Server).For information about how to use native data, see Use Native Format to Import or Export Data (SQL Server).

Asignar campos de datos a columnas de tablaMapping Data Fields to Table Columns

Al igual que cuando se crea mediante bcp, un archivo de formato describe todas las columnas de tabla en orden.As created by bcp, a format file describes all the table columns in order. Puede modificar un archivo de formato para reorganizar u omitir filas de la tabla.You can modify a format file to rearrange or omit table rows. Esto permite personalizar un archivo de formato en un archivo de datos cuyos campos no se asignan directamente a las columnas de la tabla.This lets you customize a format file to a data file whose fields do not map directly to the table columns. Para obtener más información, consulte los temas siguientes:For more information, see the following topics:

Vea tambiénSee Also

bcp Utility bcp Utility
Usar un archivo de formato para asignar columnas de tabla a campos de un archivo de datos (SQL Server) Use a Format File to Map Table Columns to Data-File Fields (SQL Server)
Usar un archivo de formato para omitir una columna de tabla (SQL Server) Use a Format File to Skip a Table Column (SQL Server)
Usar un archivo de formato para omitir un campo de datos (SQL Server) Use a Format File to Skip a Data Field (SQL Server)
Archivos de formato no XML (SQL Server) Non-XML Format Files (SQL Server)
XML, archivos de formato (SQL Server)XML Format Files (SQL Server)