post icon

Exportar Datos desde SQL Server a CSV

Por algún extraño motivo (que no me termino de explicar) MS SQL Server no tiene un comando nativo TSQL que sirva para exportar directamente datos como el BULK para importarlos, aunque eso no significa que no tenga una herramienta que sirva para tal efecto.

Ya hemos visto como hacer ésta tarea en otros motores como MySQL u Oracle.

Para realizar ésta tarea en el motor de Microsoft necesitaremos realizar unos pasos previos que estuve publicando la semana anterior y pueden leerlo aquí, si ya tenían habilitada la opción de xp_cmdshell pueden saltarse este paso y seguir con lo que viene abajo.

La herramienta que nos servirá se llama SQLCMD y se puede ejecutar desde la consola del sistema operativo sin ningún problema, pero si desean hacerlo desde un comando TSQL, procedimiento o función es necesario tener habilitado xp_cmdshell que les hablaba anteriormente.

SQLCMD -S NombreInstancia -E -d BaseDatos -i archivo_query.sql -o datos_exportados.csv -s ,

Si tienen la instancia por defecto MSSQLSERVER no hace falta que escriban el parametro -S (en mayusculas), la -s (minusculas) sirve para determinar que caracteres será el separador de columas. También deben recordar que los paths utilizados deben ser accesibles por el grupo o usuario del motor que tengan configurado.

Otra cosa importante es que el fichero archivo_query.sql debe contener la query SQL (SELECT) que quieren que obtenga los datos a exportar.

SQLCMD -S NombreInstancia -E -d BaseDatos -i C:\archivo_query.sql -o C:\datos_exportados.csv -s ,

Más info sobre SQLCMD aquí.

Comentarios desde Facebook:

  1. avatar
    Cexar PERU Internet Explorer Windows
    18 noviembre 2011 at 16:31 #

    Gracias, buena informacion…
    Cesar Angulo

Responder