Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
En este artículo se describe cómo utilizar la utilidad bcp para crear un archivo de formato para una tabla determinada. El archivo de formato se basa en la opción de tipo de datos especificada (-n, -c, -w o -N) y en los delimitadores de la vista o de la tabla.
Al realizar una importación en masa en una tabla de SQL Server o exportar en masa datos de una tabla, puede usar un archivo de formato como un sistema flexible para escribir archivos de datos. Los archivos de formato requieren poca o ninguna modificación para adaptarlos a otros formatos de datos o para leer archivos de datos de otros programas.
Limitaciones
La versión de la bcp utilidad (bcp.exe) utilizada para leer un archivo de formato debe ser la misma o posterior a la versión utilizada para crear el archivo de formato. Por ejemplo, SQL Server 2025 (17.x) bcp puede leer un archivo de formato versión 16.0, que es generado por SQL Server 2022 (16.xbcp), pero SQL Server 2022 (16.x) bcp no puede leer un archivo de formato versión 17.0, que es generado por SQL Server 2025 (17.xbcp).
Nota:
Esta sintaxis, incluida la inserción masiva, no se admite en Azure Synapse Analytics. En Azure Synapse Analytics y otras integraciones de plataforma de base de datos en la nube, lleve a cabo el movimiento de datos con la instrucción COPY en Azure Data Factory o usando instrucciones T-SQL, como COPY INTO y PolyBase.
Crear archivos de formato
SQL Server soporta dos tipos de archivos de formato: formato no XML y formato 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 archivos de formato porque proporciona varias ventajas con relación a los archivos de formato no XML.
Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad. Adventure Works Cycles es una empresa ficticia de fabricación utilizada para demostrar conceptos y escenarios de bases de datos.
Crear un archivo de formato
Para usar bcp para crear un archivo de formato, especifica el argumento format y usa nul en lugar de una ruta de acceso a un archivo de datos. La format opción siempre requiere la -f opción.
Para crear un archivo en formato XML, debes especificar la -x opción, como bcp <table_or_view> format nul -f <format_file_name> -x.
Para distinguir un archivo en formato XML, use .xml como extensión de nombre de archivo, por ejemplo, MyTable.xml.
Para información sobre la estructura y los campos de los archivos en formato XML, véase archivos en formato XML.
Ejemplos
Esta sección contiene ejemplos que muestran cómo usar bcp para crear un archivo de formato. La tabla HumanResources.Department tiene cuatro columnas: DepartmentID, Name, GroupNamey ModifiedDate.
A. Crear un archivo de formato para los datos de caracteres
El siguiente ejemplo crea un archivo de formato para la HumanResources.Department tabla usando formatos de datos de caracteres.
Crea un archivo de formato XML llamado Department-c.xml. El archivo de formato utiliza un terminador de campo no predeterminado (,). La siguiente sección muestra el contenido del archivo de formato generado.
El bcp comando contiene los siguientes calificativos.
| Calificadores | Descripción |
|---|---|
format nul -x -f <format_file> |
Especifica el archivo de formato XML. |
-c |
Especifica los datos de caracteres. |
-t, |
Especifica una coma (,) como terminador de campo.Nota: Si el archivo de datos emplea el terminador de campo predeterminado ( \t), no es necesario el modificador -t. |
-T |
Especifica que bcp se conecta a SQL Server con una conexión confiable usando seguridad integrada. Si no especificas -T, debes especificar -U y -P para iniciar sesión con éxito. |
En el símbolo del sistema de Windows, escriba el siguiente comando bcp:
bcp AdventureWorks2025.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="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 información sobre la sintaxis de este archivo de formato, véase archivos de formato XML. Para información sobre datos de caracteres, consulte Usar formato de carácter para importar o exportar datos.
B. Crear un archivo de formato para datos nativos
El siguiente ejemplo crea un archivo de formato para la HumanResources.Department tabla usando tipos de datos nativos.
Crea un archivo de formato XML llamado Department-n.xml. La siguiente sección muestra el contenido del archivo de formato generado.
El bcp comando contiene los siguientes calificativos.
| Calificadores | Descripción |
|---|---|
format nul -x -f <format_file> |
Especifica el archivo de formato XML. |
-n |
Especifica tipos de datos nativos. |
-T |
Especifica que bcp se conecta a SQL Server con una conexión confiable usando seguridad integrada. Si no especificas -T, debes especificar -U y -P para iniciar sesión con éxito. |
En el símbolo del sistema de Windows, escriba el siguiente comando bcp :
bcp AdventureWorks2025.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="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 información sobre la sintaxis de este archivo de formato, véase archivos de formato XML. Para información sobre cómo usar datos nativos, consulte Usar formato nativo para importar o exportar datos.
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 AdventureWorks2025.HumanResources.Department format nul -T -N -f Department-n.fmt
Para más información sobre cómo usar datos nativos Unicode, véase 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 usa terminadores predeterminados, use el comando siguiente:
bcp AdventureWorks2025.HumanResources.Department format nul -T -w -f Department-w.fmt
Para más información sobre cómo usar datos de caracteres Unicode, consulte Usar formato de caracteres Unicode para importar o exportar datos.
E. Usar un archivo de formato con la opción de página de códigos
Cuando creas un archivo de formato usando bcp format, escribe información sobre la página de clasificación y código en el archivo de formato.
El siguiente archivo de formato de ejemplo, para una tabla con cinco columnas, incluye la ordenación.
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 intentas importar datos en SQL Server usandobcp in -c -C65001 -f format_file ..., con BULK INSERT o OPENROWSET con FORMATFILE='format_file' CODEPAGE=65001 ..., la información de la clasificación o la página de códigos en el archivo de formato tiene prioridad sobre la opción 65001.
Por lo tanto, si generas un archivo de formato, debes eliminar manualmente la información de recopilación del archivo de formato generado antes de empezar a importar datos de nuevo a SQL Server.
El siguiente ejemplo muestra el archivo de formato sin la información de la recopilación.
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 ""
Asignar campos de datos a las columnas de la tabla
Un archivo de formato creado por bcp describe todas las columnas de la tabla en orden. Puedes modificar un archivo de formato para reorganizar u omitir las columnas de la tabla. Puede personalizar un archivo de formato en un archivo de datos cuyos campos no se asignan directamente a las columnas de la tabla. Vea los siguientes artículos para más información:
- Utiliza un archivo de formato para saltar una columna de la tabla
- Utiliza un archivo de formato para saltarse un campo de datos
- Utiliza un archivo de formato para mapear columnas de tabla a campos de archivo de datos