Crear un archivo de formato

Al importar masivamente datos en una tabla de SQL Server o exportar masivamente datos de una tabla, puede usar un archivo de formato para almacenar información de formato para cada campo de un archivo de datos relacionado con esa tabla. El archivo de formato proporciona una manera flexible de escribir archivos de datos que requiere poca o ninguna modificación para adaptarlos a otros formatos de datos y para leer archivos de datos de otros programas.

SQL Server 2005 y versiones posteriores admiten dos tipos de archivo de formato: formato XML y formato no XML. El formato no XML es el formato original compatible con versiones anteriores de SQL Server.

Por lo general, los archivos de formato XML y no XML son intercambiables. 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. Para obtener más información, consulte Introducción a los archivos de formato.

[!NOTA]

La versión de la utilidad bcp (Bcp.exe) utilizada para leer un archivo de formato debe ser la misma versión, o una versión posterior, que la utilizada para crear el archivo de formato. Por ejemplo, SQL Server 2008bcp puede leer un formato de archivo de la versión 9.0, generado por SQL Server 2005bcp, pero SQL Server 2005bcp no puede leer un formato de archivo de la versión 10.0, generado por SQL Server 2008bcp.

En este tema se describe cómo utilizar la utilidad bcp para crear un archivo de formato para una tabla determinada. El archivo de formato está basado en la opción de tipo de datos especificada (-n, -c, -w o -N) y los delimitadores de la vista o de la tabla.

Crear un archivo de formato que no es XML

Para usar un comando bcp para crear un archivo de formato, especifique el argumento format y utilice nul en lugar de una ruta de archivo de datos. La opción format también requiere la opción -f, como:

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

Para obtener información acerca de la estructura y los campos de los archivos de formato no XML, vea Descripción de los archivos de formato no XML.

Ejemplos

Esta sección contiene los siguientes ejemplos que muestran cómo usar comandos de bcp para crear un archivo de formato no XML:

  • A. Crear un archivo de formato no XML para datos nativos

  • B. Crear un archivo de formato no XML para datos de caracteres

  • C. Crear un archivo de formato no XML para datos nativos Unicode

  • D. Crear un archivo de formato no XML para datos de caracteres Unicode

Los ejemplos utilizan la tabla HumanResources.Department de la base de datos de ejemplo AdventureWorks. La tabla HumanResources.Department tiene cuatro columnas: DepartmentID, Name, GroupName y ModifiedDate. Para conocer la definición de esta tabla, vea Tabla Department (AdventureWorks).

[!NOTA]

Adventure Works Cycles es una compañía ficticia que se utiliza para mostrar situaciones y conceptos de bases de datos.

A. Crear un archivo de formato no XML para datos nativos

En este ejemplo se crea un archivo de formato XML, Department-n.xml, para la tabla HumanResources.Department de AdventureWorks. El archivo de formato utiliza tipos de datos nativos. El contenido del archivo de formato generado se presenta después del comando.

El comando bcp contiene los calificadores siguientes.

Calificadores

Descripción

formatnul-fformat_file

Especifica el archivo de formato no XML.

-n

Especifica tipos de datos nativos.

-T

Especifica que la utilidad bcp se conecta a SQL Server mediante una conexión de confianza usando la seguridad integrada. Si no se especifica -T, debe especificar -U y -P para iniciar la sesión correctamente.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp:

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

El archivo de formato generado, Department-n.fmt, contiene la siguiente información:

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                 ""

Para obtener más información, vea Descripción de los archivos de formato no XML.

B. Crear un archivo de formato no XML para datos de caracteres

En este ejemplo se crea un archivo de formato XML, Department.fmt, para la tabla HumanResources.Department de AdventureWorks. El archivo de formato utiliza formatos de datos de caracteres y un terminador de campo no predeterminado (,). El contenido del archivo de formato generado se presenta después del comando.

El comando bcp contiene los calificadores siguientes.

Calificadores

Descripción

formatnul-fformat_file

Especifica un archivo de formato no XML.

-c

Especifica los datos de caracteres.

-T

Especifica que la utilidad bcp se conecta a SQL Server mediante una conexión de confianza usando la seguridad integrada. Si no se especifica -T, debe especificar -U y -P para iniciar la sesión correctamente.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp:

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

El archivo de formato generado, Department-c.fmt, contiene la siguiente información:

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                 ""

Para obtener más información, vea Descripción de los archivos de formato no XML.

C. Crear un archivo de formato no XML para datos nativos Unicode

Para crear un archivo de formato no XML para datos nativos Unicode para la tabla HumanResources.Department, utilice el comando siguiente:

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

Para obtener más información acerca de cómo utilizar los datos nativos Unicode, vea Usar el formato nativo Unicode para importar o exportar datos.

D. Crear un archivo de formato no XML para datos de caracteres Unicode

Para crear un archivo de formato no XML para datos de caracteres Unicode para la tabla HumanResources.Department que utiliza terminadores predeterminados, utilice el comando siguiente:

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

Para obtener más información acerca del uso de datos de caracteres Unicode, vea Usar el formato de caracteres Unicode para importar o exportar datos.

Crear un archivo de formato XML

Para usar un comando bcp para crear un archivo de formato, especifique el argumento format y utilice nul en lugar de una ruta de archivo de datos. 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:

bcptable_or_viewformat nul-fformat_file_name-x

[!NOTA]

Para distinguir un archivo de formato XML, se recomienda utilizar .xml como extensión de archivo, por ejemplo, miTabla.xml.

Para obtener información acerca de la estructura y los campos de los archivos de formato XML, vea Descripción de los archivos de formato XML. Para obtener información de sintaxis, vea Sintaxis de esquema para archivos de formato XML. Para obtener ejemplos, vea Archivos de formato XML de ejemplo.

Ejemplos

Esta sección contiene los siguientes ejemplos que muestran cómo usar comandos bcp para crear un archivo de formato XML:

  • A. Crear un archivo de formato XML para datos de caracteres

  • B. Crear un archivo de formato XML para datos nativos

Los ejemplos utilizan la tabla HumanResources.Department de la base de datos de ejemplo AdventureWorks. La tabla HumanResources.Department tiene cuatro columnas: DepartmentID, Name, GroupName y ModifiedDate. Para conocer la definición de esta tabla, vea Tabla Department (AdventureWorks).

[!NOTA]

Adventure Works Cycles es una compañía ficticia que se utiliza para mostrar situaciones y conceptos de bases de datos.

A. Crear un archivo de formato XML para datos de caracteres

En este ejemplo se crea un archivo de formato XML, Department.xml, para la tabla HumanResources.Department de AdventureWorks. El archivo de formato utiliza formatos de datos de caracteres y un terminador de campo no predeterminado (,). El contenido del archivo de formato generado se presenta después del comando.

El comando bcp contiene los calificadores siguientes.

Calificadores

Descripción

formatnul-fformat_file-x

Especifica el archivo de formato XML.

-c

Especifica los datos de caracteres.

-t,

Especifica una coma (,) como terminador de campo.

NotaNota
Si el archivo de datos utiliza el terminador de campo predeterminado (\t), no es necesario el modificador -t .

-T

Especifica que la utilidad bcp se conecta a SQL Server mediante una conexión de confianza usando la seguridad integrada. Si no se especifica -T, debe especificar -U y -P para iniciar la sesión correctamente.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp:

bcp AdventureWorks.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:

<?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>

Para obtener información acerca de la sintaxis de este archivo de formato, vea Sintaxis de esquema para archivos de formato XML. Para obtener información acerca de los datos de caracteres, vea Usar el formato de caracteres para importar o exportar datos.

B. Crear un archivo de formato XML para datos nativos

En este ejemplo se crea un archivo de formato XML, Department-n.xml, para la tabla HumanResources.Department de AdventureWorks. El archivo de formato utiliza tipos de datos nativos. El contenido del archivo de formato generado se presenta después del comando.

El comando bcp contiene los calificadores siguientes.

Calificadores

Descripción

formatnul-fformat_file-x

Especifica el archivo de formato XML.

-n

Especifica tipos de datos nativos.

-T

Especifica que la utilidad bcp se conecta a SQL Server mediante una conexión de confianza usando la seguridad integrada. Si no se especifica -T, debe especificar -U y -P para iniciar la sesión correctamente.

En el símbolo del sistema de Windows, escriba el siguiente comando bcp:

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

El archivo de formato generado, Department-n.xml, contiene los elementos XML siguientes:

<?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>

Para obtener información acerca de la sintaxis de este archivo de formato, vea Sintaxis de esquema para archivos de formato XML. Para obtener información acerca del uso de datos nativos, vea Usar el formato nativo para importar o exportar datos.

Asignar campos de datos a columnas de tabla

Al igual que cuando lo crea bcp, un archivo de formato describe todas las columnas de tabla en orden. Puede modificar un archivo de formato para reorganizar u omitir filas de la tabla. Esto permite personalizar un archivo de formato en un archivo de datos cuyos campos no se asignan directamente a las columnas de la tabla. Para obtener más información, vea los siguientes temas: