Durante mi última etapa profesional he dedicado mucho tiempo a realizar análisis y estudios de bases de datos. Hasta hace poco utilizaba una herramienta muy potente llamada SAS. The Power to Know. dentro de esta herramienta, podíamos incrustar consultas SQL, la verdad es como herramienta de explotación de datos es muy buena.
Actualmente utilizo SQL Server 2008, y debo decir que es mucho mas rápido que SAS, pero que tiene limitaciones, o cosas menos intuitivas, tanto que he tenido que buscar y buscar información por la red, para hacer cosas tan sencillas como exportar una consulta (sin utilizar copiar y pegar), o para cambiar el formato de una fecha.
Actualmente estoy trabajando en un proyecto de automatización de consultas a bases de datos, para ello necesito varias tareas, entre ellas es la de exportar una consulta sql de forma automática y así poder analizarla a posteriori, para ello, tras horas de búsqueda tanto en la web como en libros, encontré la solución perfecta, que espero que ayude a la gente que me encuentre "googleando".
Actualmente estoy trabajando en un proyecto de automatización de consultas a bases de datos, para ello necesito varias tareas, entre ellas es la de exportar una consulta sql de forma automática y así poder analizarla a posteriori, para ello, tras horas de búsqueda tanto en la web como en libros, encontré la solución perfecta, que espero que ayude a la gente que me encuentre "googleando".
Durante mi búsqueda, encontré soluciones del tipo:
"Puedes copiar y pegar" - no es viable para la automatización de procesos
"Utiliza el bcp out" - tampoco es viable, dado que con este comando, no es posible extraer los nombre de las columnas.
Hasta que al fin dí con una solución mediante la utilización del comando Exec Master..xp_cmdshell, aunque no era del todo perfecta este comando, fui perfilando la expresión hasta que conseguír la sentencia de exportación perfecta.
Iré creando entradas de este tipo, con soluciones prácticas en SQL que he conseguido de mi propia experiencia y de soluciones otras personas que he encontrado por la red.
"Puedes copiar y pegar" - no es viable para la automatización de procesos
"Utiliza el bcp out" - tampoco es viable, dado que con este comando, no es posible extraer los nombre de las columnas.
Hasta que al fin dí con una solución mediante la utilización del comando Exec Master..xp_cmdshell, aunque no era del todo perfecta este comando, fui perfilando la expresión hasta que conseguír la sentencia de exportación perfecta.
Exec Master..xp_cmdshell
'sqlcmd -E -s; -W -i D:\nombre_fichero_sql.sql | findstr /V /C:"-" /B > RUTA\TEST_EXPORT.csv'
Algo rebuscado, a mi modo de ver, pero con esto, me permitía hacer una exportación completa de la base, sin los tediosos, guiones, ni cosas raras.. es como el copiar y pegar pero en forma de comando.
Iré creando entradas de este tipo, con soluciones prácticas en SQL que he conseguido de mi propia experiencia y de soluciones otras personas que he encontrado por la red.


No hay comentarios:
Publicar un comentario