Compartir a través de


Descripción de los archivos de formato no XML

En MicrosoftSQL Server 2000 y versiones anteriores, la importación y exportación masivas funcionan con un solo tipo de archivo de formato. Esto se admite en MicrosoftSQL Server 2005 y versiones posteriores, que también admiten archivos de formato XML como alternativa. Para distinguirlos de los archivos de formato del tipo original, se llaman archivos de formato no XML.

[!NOTA]

Los archivos de formato XML ofrecen varias ventajas. Para obtener más información, vea Archivos de formato para importar o exportar datos.

Normalmente, los archivos de formato se crean para un formato de datos determinado mediante el comando bcp de una de las formas siguientes:

  • Puede crear dos tipos de archivo de formato, datos de caracteres o datos nativos, especificando la opción format en el comando bcp. Para obtener más información, vea Crear un archivo de formato.

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

    [!NOTA]

    Cuando se especifica un archivo de formato existente en un comando bcp, el comando utiliza 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.

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 sólo 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:

7.0 = SQL Server versión 7.0

8.0 = SQL Server 2000

9.0 = SQL Server 2005

10.0 = SQL Server 2008

El número de versión sólo lo reconoce bcp, no Transact-SQL.

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

Longitud del prefijo

Número de caracteres del prefijo para el campo. Las longitudes de prefijo válidas son 0, 1, 2, 4 y 8. Para evitar especificar la longitud del prefijo, establezca el valor 0 en este campo. Es necesario especificar la longitud del prefijo si el campo contiene valores de datos NULL. Para obtener más información, vea Especificar longitud de prefijo en archivos de datos.

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.

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.

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 importar de forma 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 Usar un archivo de formato para asignar campos a columnas durante la importación masiva.

Ejemplos

En el siguiente ejemplo 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:

10.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 que muestra 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.