Archivos de formato no XML

En SQL Server 2012, se admiten dos tipos de archivos de formato para la importación y exportación masivas: archivos de formato no XML y archivos de formato XML.

En este tema:

  • Ventajas

  • Estructura de los archivos de formato no XML

  • Ejemplo de archivo de formato no XML

  • Tareas relacionadas

Ventajas de los archivos de formato no XML

  • Puede crear automáticamente un archivo de formato no XML especificando la opción format en un comando bcp.

  • Cuando especifica un archivo de formato existente en un comando bcp, el comando usa los valores registrados en el archivo de formato y no pregunta el tipo de almacenamiento de archivo, la longitud de prefijo, la longitud de campo ni el terminador de campo.

  • Puede crear un archivo de formato para un tipo de datos determinado, como los datos de caracteres o los datos nativos.

    Puede crear un archivo de formato no XML que contenga atributos especificados de modo interactivo para cada campo de datos. Para obtener más información, vea Especificar formatos de datos por razones de compatibilidad mediante bcp (SQL Server).

[!NOTA]

Los archivos de formato XML ofrecen varias ventajas sobre los archivos con otro formato. Para obtener más información, vea XML, archivos de formato (SQL Server).

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Estructura de los archivos de formato no XML

Un archivo de formato no XML es un archivo de texto que tiene una estructura específica. El archivo de formato no XML contiene información sobre el tipo de almacenamiento de archivo, la longitud de prefijo, la longitud de campo y el terminador de campo de cada columna de tabla.

En la ilustración siguiente se muestran los campos de archivo de formato de un archivo de formato no XML de ejemplo.

Identifica los campos de un archivo de formato no XML

Los campos Versión y Número de columnas solo aparecen una vez. Los significados se describen en la siguiente tabla.

Campo del archivo de formato

Descripción

Versión

Número de versión de la utilidad bcp:

9.0 = SQL Server 2005 

10.0 = SQL Server 2008

11.0 = SQL Server 2012

El número de versión solo se reconoce en bcp, no en Transact-SQL.

[!NOTA]

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

Número de columnas

Número de campos del archivo de datos. Este número debe ser el mismo en todas las filas.

Los otros campos del archivo de formato describen los campos de datos que se importarán o exportarán masivamente. Cada campo de datos requiere una fila distinta en el archivo de formato. Cada fila del archivo de formato contiene los valores de los campos del archivo de formato que se describen en la siguiente tabla.

Campo del archivo de formato

Descripción

Orden de campo del archivo host

Número que indica la posición de cada campo en el archivo de datos. El primer campo de la fila es 1 y así sucesivamente.

Tipo de datos del archivo host

Indica el tipo de datos que se almacena en un campo determinado del archivo de datos. Para archivos de datos ASCII, utilice SQLCHAR; para archivos de datos con formato nativo, utilice tipos de datos predeterminados. Para obtener más información, vea Especificar el tipo de almacenamiento en archivo mediante bcp (SQL Server).

Longitud del prefijo

Número de caracteres del prefijo para el campo. Los valores de longitud de prefijo válidos son 0, 1, 2, 4 y 8. Para evitar especificar el prefijo de longitud, establezca esta opción en 0. Se debe especificar el prefijo de longitud si el campo contiene valores de datos NULL. Para obtener más información, vea Especificar la longitud de prefijo en los archivos de datos mediante bcp (SQL Server).

Longitud de datos del archivo host

Longitud máxima, en bytes, del tipo de datos almacenados en el campo concreto del archivo de datos.

Si está creando un archivo de formato no XML para un archivo de texto delimitado, puede especificar 0 para la longitud de datos del archivo host de cada campo de datos. Cuando se importa un archivo de texto delimitado con una longitud de prefijo de 0 y un terminador, el valor de la longitud de campo se ignora porque el espacio de almacenamiento utilizado por las columnas es igual a la longitud de los datos más el terminador.

Para obtener más información, vea Especificar la longitud de campo mediante bcp (SQL Server).

Terminador

Delimitador para separar los campos del archivo de datos. Los terminadores más utilizados son la coma (,), la tabulación (\t) y el final de línea (\r\n). Para obtener más información, vea Especificar terminadores de campo y de fila (SQL Server).

Orden de columnas del servidor

Orden en el que aparecen las columnas en la tabla de SQL Server. Por ejemplo, si el cuarto campo del archivo de datos se asigna a la sexta columna de una tabla de SQL Server, el orden de las columnas del servidor para el cuarto campo es 6.

Para evitar que una columna de la tabla reciba datos del archivo de datos, establezca el valor 0 para el orden de las columnas del servidor.

Nombre de la columna del servidor

Nombre de la columna copiada de la tabla de SQL Server. El nombre real del campo no es necesario, pero el campo en el archivo de formato no debe estar en blanco.

Intercalación de columnas

La intercalación que se utiliza para almacenar datos de carácter y Unicode en el archivo de datos.

[!NOTA]

Puede modificar un archivo de formato de forma que le permita realizar una importación masiva desde un archivo de datos en el que el número o el orden de los campos difieran del número o el orden de las columnas de la tabla. Para obtener más información, vea la lista Tareas relacionadas, más adelante en este tema.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Ejemplo de archivo de formato no XML

En el ejemplo siguiente se muestra un archivo de formato no XML creado anteriormente (myDepartmentIdentical-f-c.fmt). Este archivo describe un campo de datos de caracteres para cada columna en la tabla HumanResources.Department de la base de datos de ejemplo AdventureWorks.

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

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

[!NOTA]

Para ver una ilustración en la que se muestran los campos del archivo de formato en relación con este archivo de formato no XML de ejemplo, vea Estructura de los archivos de formato no XML anteriormente en este tema.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Tareas relacionadas

[Arriba]

Vea también

Referencia

bcp (utilidad)

Conceptos

Crear un archivo de formato (SQL Server)

XML, archivos de formato (SQL Server)

Archivos de formato para importar o exportar datos (SQL Server)