Cuando trabaja como administrador o desarrollador de la base de datos de SQL Server, no puede vivir en su mundo aislado de SQL Server sin comunicarse con otras fuentes de datos. Por ejemplo, rara vez hay un día en el que no se le solicite importar datos de un archivo de Excel, Access o CSV a su tabla de SQL Server. O, por el contrario, exporte una de sus tablas de base de datos de SQL Server a un archivo externo para que esta tabla se use en otro motor de base de datos o sea analizada externamente por el equipo correspondiente.
SQL Server nos proporciona una serie de métodos que se pueden usar para exportar una tabla de base de datos de SQL Server existente a un archivo de texto o de Excel, e importar datos desde una fuente de datos externa a una tabla de base de datos de SQL Server nueva o existente. En este artículo, cubriremos gradualmente todos estos métodos.
Utilidad BCP
La utilidad Bulk Copy Program, también conocida como BCP, es una utilidad de línea de comandos que se puede usar para importar una gran cantidad de filas de un archivo de datos del sistema operativo a la tabla de la base de datos de SQL Server, o para exportar una tabla de la base de datos de SQL Server existente a un sistema operativo. archivo de datos del sistema.
La sintaxis de la herramienta BCP contiene una gran variedad de opciones. Estos son los más utilizados:
- El nombre de la tabla o vista de la base de datos de SQL Server:actuará como fuente de datos en caso de un proceso de exportación de datos y como destino en caso de un proceso de importación de datos.
- La dirección de los datos, donde IN indica importación de datos y SALIDA indica exportación de datos.
- El nombre del archivo de datos local que actuará como fuente en caso de proceso de importación de datos y como destino en caso de proceso de exportación de datos.
- -S servidor\instancia – esto se usa para especificar el nombre de la instancia de SQL Server.
- –d – esto se usa para especificar la base de datos que contiene la tabla de origen o de destino.
- -T – esto se usa para especificar que la autenticación de Windows se usará para conectarse a SQL Server.
- -U nombre de usuario y -P contraseña – estos especifican el nombre de usuario y la contraseña utilizados para conectarse a la instancia de SQL Server.
- La utilidad Bulk Copy Program, también conocida como BCP, es una utilidad de línea de comandos que se puede usar para importar una gran cantidad de filas de un archivo de datos del sistema operativo a la tabla de la base de datos de SQL Server o exportar una tabla de la base de datos de SQL Server existente. a un archivo de datos del sistema operativo. – se utilizan para especificar el formato del archivo de datos de origen o de destino y los delimitadores utilizados en ese archivo de datos.
Por ejemplo, el siguiente comando BCP se usa para exportar el contenido de la tabla de la base de datos Employee_Main de forma masiva en un archivo CSV, de la siguiente manera:
bcp AdventureWorks2016CTP3.dbo.Employee_Main out C:\Test\Employees.csv -S MININT-QQBE87A -T -c -t , -r \n
Estos datos se copiarán rápidamente en un archivo CSV, como se muestra en el siguiente resultado:
Para importar el contenido de un archivo CSV en una tabla de base de datos, se puede usar el siguiente comando BCP para lograr esto rápidamente en masa:
bcp AdventureWorks.dbo.Employee_Main en C:\Prueba\Empleados.csv -S MININT-QQBE87A -T -c -t , -r \n
Y los datos se insertarán en la tabla de la base de datos, como se muestra en el siguiente resultado:
Si dedica unos minutos a preparar estos comandos con las opciones adecuadas, puede usar fácilmente la utilidad BCP para importar datos o exportarlos a archivos de datos de texto.
INSERTO A GRANEL
El BULK INSERT T-SQL declaración funciona de manera similar a BCP IN y se utiliza para importar datos desde un archivo de datos al que puede acceder el servicio de SQL Server en una tabla de base de datos de SQL Server, todo se hace directamente dentro de SQL Server. A diferencia del comando BCP IN, la declaración BULK INSERT se puede agrupar con otras operaciones en una sola transacción de SQL Server que se ejecuta bajo su control.
La declaración BULK INSERT T-SQL a continuación se puede usar para importar datos de un archivo CSV a una tabla de base de datos existente, especificando los delimitadores de columna y fila, como se muestra a continuación:
BULK INSERT AdventureWorks.dbo.Employee_Main FROM 'C:\Test\Employees.csv' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR ='\n' ); GO
CONJUNTO DE FILAS ABIERTAS
La función OPENROWSET se usa para conectarse a fuentes de datos mediante un proveedor de conexión OLEDB y luego usar la consulta T-SQL especificada para recuperar datos de esa fuente de datos. Las principales ventajas de la función OPENROWSET sobre los métodos BCP y BULK INSERT son las siguientes:
- puede filtrar los datos recuperados por la declaración OPENROWSET utilizando una cláusula WHERE
- puede usarlo en una declaración SELECT para leer los datos de la fuente de datos, no solo con la declaración INSERT
Para usar la instrucción OPENROWSET, deberá habilitar las consultas distribuidas ad hoc opción de configuración del sistema primero usando el siguiente script:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO
Después de habilitar la opción de configuración del sistema de consultas distribuidas ad hoc, puede usar la función OPENROWSET para importar datos a las tablas de la base de datos de SQL Server desde archivos CSV con un formato de datos previamente definido, como se muestra en la consulta T-SQL a continuación:
INSERT INTO [AdventureWorks].[dbo].[Employee_Main] ([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber]) SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber] FROM OPENROWSET( BULK 'C:\Test\Employees.csv', FORMATFILE = 'C:\Test\Fmt.xml' ) AS rows;
Servidor vinculado
El servidor vinculado de SQL Server es un objeto de servidor que está configurado para permitir que el motor de base de datos de SQL Server se conecte a diferentes tipos de orígenes de datos OLE DB fuera de la instancia de SQL Server. El servidor vinculado se puede crear fácilmente con SQL Server Management Studio o los comandos T-SQL, como se muestra a continuación:
Una vez creado, el servidor vinculado se puede usar fácilmente para acceder a la fuente de datos remota e importar los datos correspondientes a la tabla de la base de datos de SQL Server, como se muestra en la consulta T-SQL a continuación:
INSERT INTO [AdventureWorks].[dbo].[Employee_Main] ([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address]) SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address] FROM TEST...Employee_Main$
Asistente de exportación/importación de SQL Server
El asistente de exportación e importación de SQL Server nos brinda una interfaz simple para crear paquetes del servicio de integración de SQL Server que se pueden usar de inmediato o guardar para su uso posterior. Estos paquetes permiten importar y exportar datos desde una amplia variedad de fuentes de datos, desde archivos planos simples hasta motores de bases de datos más complejos.
El asistente de exportación e importación se puede utilizar, por ejemplo, para importar datos desde una fuente de datos de Excel a una tabla de base de datos existente. Los siguientes pasos describen este proceso:
- En el Explorador de objetos de SQL Server Management Studio, haga clic con el botón derecho en la base de datos AdventureWorks que contiene la tabla en la que escribirá los datos. Luego, elija Importar datos opción de Tareas submenú:
- Se abrirá el asistente de importación y exportación de SQL Server. En Elija una fuente de datos ventana, especifique el tipo de fuente de datos. En este ejemplo particular, elegiremos Microsoft Excel y la ruta completa para el archivo de Excel deseado. Después de especificarlo, haga clic en Siguiente botón:
- En Elegir un destino ventana, se le pedirá que especifique el tipo de destino en el que se escribirán los datos de origen. En nuestro ejemplo, es la base de datos de SQL Server. También se le pedirá que especifique el nombre del servidor, las credenciales y el nombre de la base de datos en la que se encuentra la tabla de destino. Después de proporcionar toda esta información, haga clic en Siguiente para proceder:
- En Especificar copia de tabla o consulta ventana, tendrá la opción de copiar todos los datos del origen a una tabla existente o nueva, o escribir una consulta personalizada para recuperar un rango específico de datos. Cuando haya decidido esto, haga clic en Siguiente botón:
- En Seleccionar tablas y vistas de origen ventana, especifique la hoja o tabla de origen desde el origen de datos y la tabla de destino en la que se escribirán los datos de origen. Tendrá la capacidad de obtener una vista previa de la fuente, verificar la asignación de las columnas entre las tablas de origen y de destino, y especificar si los datos deben agregarse a una tabla existente o a una tabla recién generada. Haga clic en Siguiente botón para proceder:
- En el paquete Guardar y ejecutar Windows, tiene la opción de guardar el paquete SSIS que se crea dentro del Asistente de importación y exportación para ejecutarlo inmediatamente o guardarlo para programarlo o ejecutarlo más tarde. Haga clic en Siguiente botón para proceder:
- En Completar el asistente ventana, verá un resumen de las opciones seleccionadas y la configuración proporcionada. Haga clic en Finalizar botón para comenzar a copiar los datos:
- Después de completar el proceso de copia, el asistente mostrará la cantidad de registros copiados en cada tabla. Si no hay errores, puede hacer clic en Cerrar botón para cerrar la ventana:Puede ver en el ejemplo anterior que el asistente de importación y exportación se puede usar fácilmente para copiar datos entre diferentes tipos de fuentes y destinos de datos, sin considerar la relación entre las tablas. Si la tabla tiene una restricción de clave externa que hace referencia a una de las columnas de la tabla principal, debe administrar el orden del proceso de copia de datos manualmente. Además, para iniciar un nuevo proceso de importación de datos, deberá cerrar el asistente y volver a abrirlo.
Bombeo de datos de dbForge
dbForge Data Pump es una herramienta de terceros incluida con SQL Server Management Studio como complemento. Se puede usar para migrar fácilmente datos entre SQL Server y diferentes fuentes de datos externas. Le permite importar y exportar desde más de 10 formatos de datos de uso común (texto, MS Excel, XML, CSV, JSON, etc.) con una serie de opciones y plantillas avanzadas que se pueden utilizar para escenarios recurrentes.
Después de descargar dbForge Data Pump desde la página de descarga de Devart, deberá instalarlo en la máquina como un complemento de la herramienta SSMS, como se muestra a continuación:
Exportación de datos
dbForge Data Pump se puede usar dentro de SSMS para exportar datos desde una tabla de base de datos de SQL Server o para ver datos en 13 tipos de formatos admitidos, incluidos HTML, texto, MS Excel, MS Excel 2007, MS Access, RTF, PDF, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7), SQL y JSON.
Para exportar datos de una tabla específica de SQL Server, siga los pasos a continuación:
- Conéctese a la instancia de SQL Server a través de SSMS. En el Explorador de objetos, haga clic con el botón derecho en la base de datos que contiene la tabla de origen y elija Exportar datos. de la bomba de datos submenú:
- En el Formato de exportación ventana, elija el formato del archivo al que se exportarán los datos de la tabla de origen o cargue una plantilla previamente guardada. En nuestro ejemplo, elegiremos MS Excel 2007. Haga clic en Siguiente botón para proceder:
- En la ventana Origen, revise los detalles de la conexión y seleccione las tablas que contienen los datos de origen que desea exportar. Haga clic en Siguiente para proceder:
- En las Opciones ventana, verifique y configure las diferentes opciones personalizables para la cuadrícula de la tabla de datos exportados. Luego, haga clic en Siguiente para proceder:
- En los Formatos de datos ventana, debajo de las Columnas pestaña, seleccione las columnas que se exportarán y revise sus tipos de datos:También, en los Formatos pestaña, configure el formato de diferentes tipos de datos para las columnas que seleccionó. Haga clic en Siguiente botón para proceder:
- En la Configuración de impresión de página ventana, puede configurar las diferentes opciones para las páginas del archivo exportado con fines de impresión. Haga clic en Siguiente para proceder:
- En las Filas exportadas ventana, especifique un rango de filas para exportar desde la tabla de origen o elija exportar todas las filas de la tabla. Haga clic en Siguiente para proceder:
- El manejo de errores La ventana le proporciona una serie de opciones que se pueden utilizar para especificar cómo procesar los errores si se producen y dónde registrar los resultados de la ejecución. Haga clic en Guardar plantilla para guardar la configuración como plantilla para usarla en el futuro, o presione Exportar para iniciar el proceso de exportación de datos, como se muestra a continuación:Durante el proceso de exportación de datos, Data Pump le proporcionará mensajes informativos que muestran la cantidad de registros copiados del tabla actual, como se muestra a continuación:Cuando el proceso de exportación de datos se complete con éxito, se mostrará un resumen del proceso de exportación. Se proporcionarán opciones para abrir el archivo generado o la carpeta que lo contiene y exportar más datos desde la misma página sin necesidad de cerrar y volver a abrir la herramienta:
Importación de datos
dbForge Data Pump se puede usar dentro de SSMS para importar datos a una tabla de base de datos de SQL Server. Se admiten los siguientes 9 formatos de datos ampliamente utilizados:Texto, MS Excel, MS Excel 2007, MS Access, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7) y JSON.
Para importar datos de una hoja de Excel a una tabla específica de SQL Server, siga los pasos a continuación:
- Conéctese a la instancia de SQL Server mediante SSMS. En el Explorador de objetos, haga clic con el botón derecho en la base de datos que contiene la tabla de la base de datos de destino y elija Importar. Datos de la bomba de datos submenú:
- En el archivo de origen ventana, elija el formato del archivo fuente o simplemente cargue una plantilla previamente guardada para realizar el proceso de importación. En nuestro ejemplo, usaremos Microsoft Excel 2007 y haremos clic en Examinar para localizar la hoja de Excel. Haga clic en Siguiente botón para continuar:
- En el Destino ventana, revise la información de conexión y especifique si los datos deben importarse a una nueva tabla o a una tabla existente de la lista provista. Haga clic en Siguiente para proceder:
- En las Opciones ventana, puede configurar diferentes opciones que especifican la ubicación del encabezado y los datos en el archivo de origen, con la capacidad de obtener una vista previa de los datos del archivo de origen antes de importar. Haga clic en Siguiente para proceder:
- En los Formatos de datos ventana, puede ajustar el formato del tipo de datos para diferentes columnas de texto en el archivo de origen antes de importarlo a la tabla de la base de datos. Haga clic en Siguiente para proceder:
- En el Mapeo ventana, puede asignar las columnas del archivo de origen a la tabla de la base de datos de destino, con la capacidad de obtener una vista previa de los datos después de realizar el cambio. Haga clic en Siguiente para proceder:
- En los Modos ventana, puede especificar el modo de importación de datos, como agregar los datos a los datos existentes en la tabla de destino y realizar una inserción masiva o importar los datos con una sola transacción. Haga clic en Siguiente para proceder:
- En la Salida ventana, puede especificar generar o guardar el script de importación de datos o continuar con el proceso de importación de datos inmediatamente. Haga clic en Siguiente para proceder:
- El manejo de errores La ventana le proporciona una serie de opciones que se pueden utilizar para especificar cómo comportarse si se producen errores y dónde registrar los resultados de la ejecución. Haga clic en Guardar plantilla para guardar la configuración como una plantilla para usarla en el futuro, o Importar para iniciar el proceso de importación de datos, como se muestra a continuación:
- Cuando el proceso de importación se completa con éxito, el asistente mostrará un resumen de la cantidad de registros importados. Tendrá la capacidad de revisar el archivo de registro de errores en caso de que se produzca algún error e importar otros archivos desde la misma ventana sin necesidad de cerrar y volver a abrir la herramienta:
Está claro del ejemplo anterior que la herramienta dbForge Data Pump nos brinda la capacidad de importar y exportar datos hacia y desde varios formatos de archivo de datos. El asistente dedicado para esto es simple de configurar, rico en diferentes opciones y no requiere esfuerzos de desarrollo. ¡Se merece una oportunidad!