Volver a la lista de artículos Artículos
Lectura de 9 minutos

Cómo exportar un archivo CSV desde una consulta T-SQL

Conocer las consultas SQL para seleccionar datos de las bases de datos le permite obtener información fácilmente. Sin embargo, hay muchas situaciones en las que necesitamos exportar datos a otra plataforma o aplicación. El archivo CSV es una solución a este problema.

Si quiere dominar el SQL completo, pruebe nuestro Curso completo de SQL interactivo. Contiene 7 cursos prácticos de SQL que le llevarán desde un principiante hasta un usuario avanzado de SQL. Inscríbase ahora de forma gratuita.

En este artículo, descubrirás qué es un archivo CSV y por qué querrías utilizarlo. También aprenderá 5 métodos para exportar datos a un archivo CSV desde una base de datos de SQL Server. ¡Empecemos!

¿Qué es un archivo CSV y por qué se utiliza?

Probablemente se pregunte por qué querría exportar datos a un archivo CSV. En primer lugar, el archivo CSV (.csv) es un formato de datos muy popular, aceptado por muchas aplicaciones como Excel, Calc, varios IDEs y servidores de bases de datos. Además, tiene una estructura muy sencilla, ya que los rasgos característicos son los valores en filas separadas por comas.

La primera línea suele contener la cabecera de la fila. Observe el siguiente archivo de ejemplo:

Comando de exportación SQL a CSV

Como puede ver, la primera línea contiene la cabecera con los nombres de las columnas id, first_name, y last_name. Las filas que siguen contienen los valores correspondientes a las cabeceras de las columnas, separados por comas.

La popularidad y la amplia aceptación de este formato permiten el intercambio de datos entre diferentes plataformas y aplicaciones. Se pueden exportar datos de una base de datos e importarlos a otro software como Excel.

Esta independencia también permite mover datos entre diferentes sistemas operativos como Windows y Linux. Muchos programas tienen una opción para exportar e importar desde/a archivos CSV por esta razón. Las empresas que trabajan con datos en diferentes plataformas pueden operar con los mismos datos y moverlos utilizando el formato CSV para importar y exportar.

El formato CSV también proporciona una forma fácil de entender los datos porque es legible para el ser humano. El contenido del archivo CSV puede verse como una hoja de cálculo en Excel o Calc.

El ejemplo de los datos a exportar

Digamos que tenemos este producto de una tabla en la base de datos de SQL Server:

idnamecategory
1keyboardelectronics
2brickstoys
3lampelectronics
4wood cartoys
5balltoys

Como usted sabe, podemos obtener todas las filas de esta tabla mediante una simple consulta SQL:

SELECT * FROM product;

Cuando la ejecutamos, todos los datos se muestran en la ventana de salida de SQL. ¿Pero qué pasa si queremos ver los mismos datos en otras aplicaciones como Excel? Siga leyendo para conocer varios métodos para exportar los datos de una tabla a un archivo CSV.

Los métodos para exportar datos SQL de una tabla a un archivo CSV

Ahora veremos cómo exportar datos de una consulta contra un servidor SQL a un archivo CSV. Hay varios métodos diferentes para hacerlo.

Método 1: Usando el SQL Server Management Studio

Este método aprovecha la herramienta SSMS-GUI diseñada para gestionar objetos y datos en SQL Server.

En primer lugar, ejecute SSMS. En el sistema operativo Windows, vaya a "Inicio", expanda las "Herramientas de Microsoft SQL Server" y seleccione "Management Studio".

Comando de exportación SQL a CSV

En el siguiente paso, expanda el nodo Base de datos y haga clic con el botón derecho en la base de datos que contiene la tabla product (nuestra base de datos es store). En el menú, elija "Tareas" y luego "Exportar datos".

Comando de exportación SQL a CSV

Aparecerá el asistente de importación y exportación:

Comando de exportación SQL a CSV

Haga clic en el botón "Siguiente". En la lista de "Opciones de datos", seleccione "Cliente nativo de SQL Server":

Comando de exportación SQL a CSV

Rellene otros campos como el nombre del servidor, el nombre de usuario y la contraseña del servidor, y elija la base de datos que almacena la tabla que desea exportar (nuestra tabla product está en el database almacén):

Comando de exportación SQL a CSV

Pase al siguiente paso haciendo clic en el botón "Siguiente".

Ahora, elija el formato de archivo de destino. Para un archivo CSV, elija "Archivo plano". Rellene los campos con el nombre del archivo, la ubicación y la página de códigos. Marque las casillas "Unicode" y "Nombres de columna":

Comando de exportación SQL a CSV

En el siguiente paso, seleccione la opción de transferir todos los datos de la tabla o escriba una consulta SQL para hacerlo. Optar por la primera opción tiene el siguiente aspecto:

Comando de exportación SQL a CSV

Seleccione la tabla product de la lista de tablas:

Comando de exportación SQL a CSV

En el siguiente paso, haga clic en el botón "Siguiente".

Comando de exportación SQL a CSV

Y en el último paso haga clic en el botón "Finalizar":

Comando de exportación SQL a CSV

Verás la información sobre aciertos y errores:

Comando de exportación SQL a CSV

Cierre la ventana del asistente y vaya al archivo con los datos del producto de la tabla. Puede encontrarlo en los catálogos de la carpeta de usuario del sistema operativo Windows.

Método 2: Operar con un conjunto de resultados en SSMS - Datos sin nombres de columnas

Otro método que utiliza SSMS para exportar datos a un archivo CSV se basa en las filas de un conjunto de resultados.

En la ventana del Explorador de Objetos, expanda el nodo Base de Datos y seleccione la base de datos que contiene nuestra tabla producto. A continuación, haga clic en el botón "Nueva consulta" para abrir el editor para escribir consultas SQL. Seleccione todos los datos de la tabla product:

SELECT * FROM product;
Comando de exportación SQL a CSV

Ahora, haga clic en el botón "Ejecutar" para ejecutar la consulta. En el conjunto de resultados, verá todos los datos de la tabla.

En el siguiente paso, haga clic con el botón derecho del ratón en las filas de datos del conjunto de resultados y seleccione "Guardar resultado como" en el menú.

Comando de exportación SQL a CSV

En la ventana Archivo, seleccione la carpeta de destino para su archivo CSV, introduzca el nombre del archivo en el campo Nombre del archivo - "producto-tienda", por ejemplo - y haga clic en Aceptar. Este archivo contiene sus datos, pero sin los nombres de las columnas.

Método 3: Operar con un conjunto de resultados en SSMS - Datos con cabecera

Este método es similar al anterior. También se basa en SSMS y en el conjunto de resultados, pero las diferencias están en las opciones que usted hace desde el menú.

Primero, haga clic con el botón derecho en el conjunto de resultados y elija "Seleccionar todo" en el menú.

Comando de exportación SQL a CSV

Esto seleccionará todas las filas.

Comando de exportación SQL a CSV

Haga clic con el botón derecho en las filas seleccionadas y elija "Copiar con encabezados" en el menú. Vaya a un archivo CSV vacío y simplemente pegue el contenido.

Método 4: Usar la utilidad SQLCMD

SQLCMD es una herramienta que permite utilizar un terminal en un sistema operativo como Windows para ejecutar sentencias SQL o scripts. Podemos utilizarla para exportar datos a un archivo CSV.

Primero, abre cmd en tu sistema operativo y escribe el siguiente comando:

sqlcmd -S DESKTOP-INGEKE8\MSSQLSERVER,1433
-Q "select * from store.dbo.product"
–s "," –o "C:\Users\dora\Documents\products_list.csv" -E

Ejecútelo pulsando "Enter".

Permíteme explicar esto con más detalle.

La primera palabra es el nombre de la herramienta, sqlcmd. A continuación están las opciones (letras específicas, cada una precedida por un guión) necesarias para exportar los datos de una consulta SQL a un archivo CSV.

La primera opción es -S, seguida del nombre del servidor, una barra invertida, el nombre de la instancia de SQL Server, una coma y el número de puerto para la conexión. En mi caso, SQL Server está en una máquina llamada DESKTOP-INGEKE8, y la instancia es MSSQLSERVER. Tenga en cuenta que el puerto por defecto es 1433.

La segunda opción es -Q. A continuación, una sentencia SELECT para obtener los datos de la tabla. Encierre la sentencia SELECT entre comillas. En nuestro ejemplo, almacenar es la base de datos, dbo es el esquema por defecto, y product es el nombre de la tabla.

La tercera opción es -s seguida de una coma entre comillas. Esto especifica la coma como separador entre las columnas del archivo CSV.

La cuarta opción es -o para especificar la ruta y el nombre del archivo de salida. Encierre la ruta y el nombre del archivo entre comillas.

Y la última opción es -E. Esto indica que se trata de una conexión de confianza con el servidor de la base de datos.

Comando de exportación SQL a CSV

El resultado es un archivo CSV (products_list.csv) que contiene los datos de la tabla product de la base de datos store en la ruta especificada.

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv -S DESKTOP-INGEKE8\SQLEXPRESS -c -t"," -T
bcp "SELECT * from product WITH (NOLOCK)" queryout c:\product-store.csv -c -T

Método 5: Uso de la herramienta BCP

El uso de la herramienta BCP es similar al método anterior. BCP es un programa de línea de comandos que copia datos de/a una instancia SQL y de/a un archivo de datos, utilizando un formato de archivo especificado. Puede utilizar esta herramienta en el terminal de su sistema operativo.

Abra cmd en el sistema operativo Windows y ejecute lo siguiente:

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv
-S DESKTOP-INGEKE8\MSSQLSERVER,1433 -c -t"," -T

La primera palabra es bcp, seguida de los nombres de la base de datos, el esquema y la tabla, separados por el punto. A continuación, el comando out especifica la ruta del archivo de resultados. En mi caso, es C:\Users\dora\Desktop\product-data.csv.

A continuación está la opción -S, seguida del nombre del servidor, una barra invertida, el nombre de la instancia de SQL Server, una coma y el número de puerto para la conexión. En mi caso, SQL Server está en una máquina llamada DESKTOP-INGEKE8, y la instancia es MSSQLSERVER. Tenga en cuenta que el puerto por defecto es 1433.

La opción -t (en minúsculas) define el separador entre comillas. Aquí, el separador es la coma.

La opción -T (en mayúsculas) representa la autenticación de Windows de confianza.

Cuando ejecute esto, verá algo como lo que se muestra a continuación para hacerle saber el estado de la copia de sus datos:

Comando de exportación SQL a CSV

¡Vamos a exportar una tabla SQL a un archivo CSV!

En este artículo, has aprendido qué es un archivo CSV, cómo se construye este formato y por qué se utiliza en aplicaciones o plataformas. También ha visto varios métodos para exportar datos de una tabla de una base de datos de Microsoft SQL Server a un archivo CSV.

Tal vez le interese leer sobre cómo exportar a un archivo CSV desde una base de datos PostgreSQL en el artículo "Cómo importar CSVs a PostgreSQL usando PgAdmin". O aprender más sobre SQL Server con cursos en nuestra plataforma LearnSQL.es.