Importación y exportación masiva de datos (SQL Server)

Aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Analítica (PDW)Base de datos SQL en Microsoft Fabric

SQL Server admite la exportación masiva de datos (datos masivos) desde una tabla de SQL Server y la importación en bloque de datos a una tabla o vista sin particiones de SQL Server.

  • La exportación masiva se refiere a la copia de datos de una tabla de SQL Server en un archivo de datos.

  • La importación masiva se refiere a cargar datos de un archivo de datos a una tabla de SQL Server. Por ejemplo, puedes exportar datos de una aplicación de Microsoft Excel a un archivo de datos y, después, importarlos masivamente en una tabla de SQL Server.

Métodos para la importación y exportación masivas de datos

SQL Server permite exportar datos en masa desde una tabla de SQL Server e importar datos en masa a una tabla de SQL Server o a una vista no particionada. Están disponibles los métodos básicos siguientes.

Method Description Importa datos Exporta datos
Utilidad bcp Una utilidad de línea de comandos (bcp.exe) que exporta e importa datos en masa y genera archivos de formato. Yes Yes
Instrucción BULK INSERT Instrucción Transact-SQL que importa datos directamente de un archivo de datos en una tabla o vista sin particionar de una base de datos. Yes No
INSERT ... instrucción SELECT * FROM OPENROWSET(BULK...) Una sentencia Transact-SQL que utiliza el OPENROWSET proveedor de conjuntos de filas en bulk para importar datos en masa a una tabla SQL Server especificando la función OPENROWSET(BULK...) para seleccionar datos en una INSERT sentencia. Yes No
Asistente para importación y exportación de SQL Server El asistente crea paquetes básicos que importan y exportan datos entre muchos formatos de datos populares, incluyendo bases de datos, hojas de cálculo y archivos de texto. Yes Yes

Para las reglas sobre el uso de un archivo de valores separados por comas (CSV) como archivo de datos para una importación masiva de datos a SQL Server, consulte Preparar datos para exportación o importación masiva.

Note

Azure Synapse Analytics solo admite la bcp utilidad para importar y exportar archivos delimitados.

Formato de archivos

La utilidad bcp, BULK INSERT, y OPENROWSET BULK soportan el uso de un archivo de formato especializado que almacena la información de formato de cada campo en un archivo de datos. El archivo de formato puede contener también información acerca de la tabla de SQL Server correspondiente. Utiliza el archivo de formato para proporcionar toda la información de formato necesaria para exportar datos en masa desde e importar datos en masa a una instancia de SQL Server.

Important

No puedes usar bcp para importar datos desde Azure Blob Storage a Azure SQL Database ni para exportar datos a Azure Blob Storage desde Azure SQL Database. Use BULK INSERT o OPENROWSET BULK para importar desde o exportar a Azure Blob Storage.

Los archivos de formato ofrecen una forma flexible de interpretar los datos tal como están en el archivo durante la importación, y también de formatear los datos en el archivo durante la exportación. Esta flexibilidad elimina la necesidad de escribir código de propósito especial para interpretar los datos o reformatearlos según los requisitos específicos de SQL Server o la aplicación externa. Por ejemplo, si exportas datos en masa para cargarlos en una aplicación que requiere valores separados por comas, usa un archivo de formato para insertar comas como terminadores de campo en los datos exportados.

SQL Server soporta dos tipos de archivos de formato: archivos de formato XML y archivos no de formato XML.

La utilidad bcp es la única herramienta que puede generar un archivo de formato. Para más información, consulte Crear un archivo de formato con bcp. Para más información sobre archivos de formato, consulte Archivos de formato para importar o exportar datos.

Note

Si no suministras un archivo de formato durante una operación de exportación o importación masiva, puedes anular el formato predeterminado en la línea de comandos.