Mostrando las entradas con la etiqueta SQLCMD. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SQLCMD. Mostrar todas las entradas

2016/11/16

EJECUTANDO UN SCRIPT USANDO SQLCMD

PROBLEMA: Tenemos que ejecutar un archivo *.sql de gran tamaño, sin embargo nos topamos con problemas de memoria insuficiente o que no podemos abrir el archivo como los que se muestran en las siguientes imágenes, que podemos hacer?
SOLUCION: Recordando nuestro artículo anterior en el que utilizábamos la utilería SQLCMD para exportar el resultado de una consulta hacia un archivo de texto plano, podemos utilizar esta misma utilería para poder ejecutar un archivo *.sql, veamos como podemos hacerlo.

Para empezar, primero generaré un archivo de creación de objetos y otro archivo para el contenido de algunas de las tablas de la base de datos Adventure Works que pueden descargar de este AQUI, si descomprimos el archivos podemos observar su tamaño:
En algunos equipos no es posible abrir el archivo para poder ejecutarlo, por la cantidad de memoria libre que tenemos al momento, es por ello que se recomienda usar la utilería SQLCMD y como hacemos esto, de la siguiente manera:

sqlcmd -S 192.168.15.3\SQLSERVER2014 -U sa -P pass%word0 -i C:\Users\Sergio\Documents\CHECKO\SQLSERVER\BLOG\posts\EjecutandoScriptConSQLCMD\script.sql -o C:\Users\Sergio\Documents\CHECKO\SQLSERVER\BLOG\posts\EjecutandoScriptConSQLCMD\resultadoScript.txt

Indicamos donde guardaremos los resultados de la ejecución de la consulta y vemos que el script crea una BD con el nombre PruebaCargaScript con algunas tablas y datos que carga en ellas
De esta manera, podemos observar que el script se ejecutó y tenemos los resultados en el archivo que indicamos y así es como podemos ejecutar un archivo de gran tamaño.

Espero que les sea de ayuda…

SALUDOS!

2016/11/09

EXPORTANDO RESULTADO DE CONSULTA A TXT CON SQLCMD

PROBLEMA: A muchos de nosotros nos han pedido volcar el resultado de una consulta a un archivo de texto plano, tal vez conozcamos BCP o SSIS para realizar estas tareas, pero… conocemos la utilería SQLCMD?

SOLUCION: Una de las posibles soluciones(como siempre, hay varias) para cumplir con esta actividad es la utilería SQLCMD, pero que es esta utilería? De donde la bajo? Como la instalo? Etc.

SQLCMD es una especie de línea de comandos con la capacidad de ejecutar código T-SQL, además de poder ejecutar archivos *.sql, que contengan una serie de instrucciones; dicha utilería ya viene con la instalación de SQL SERVER por lo tanto no requerimos de bajarlo de ninguna parte.

Veamos cómo podemos exportar el resultado de una consulta a un archivo de texto plano, la documentación de esta utilería la podemos encontrar aquí

1.- Debemos abrir una línea de comandos de Windows, WIN + R, escribimos CMD y luego presionamos ENTER.
2.- En la ventana de comandos, me conectare a mi servidor con el usuario y contraseña y después le indicaré mi consulta, de la siguiente manera:

sqlcmd -S 192.168.15.11\SQLSERVER2014 -U sa -P pass%word0 -Q "SELECT TOP 2 * FROM AdventureWorks2014.Production.Product;"
-S : Indica el nombre de servidor o IP y la instancia de SQL SERVER.
-U :  Credencial para conectarnos al servidor de base de datos.
-P : Contraseña
-Q : Instrucción que ejecutaremos y debe estar encerrada entre comillas dobles.

Este es el resultado de la ejecución:
Para exportarlo a un archivo hay que utilizar -o “C:\ruta\del\archivo\nombreDelArchivo.txt”

sqlcmd -S 192.168.15.11\SQLSERVER2014 -U sa -P pass%word0 -Q "SELECT TOP 2 * FROM AdventureWorks2014.Production.Product;" -o "C:\resultadoConsulta.txt"

Para mi ejemplo cambie la ruta:
Y otro ejemplo con todas las filas de la consulta:
Y eso es todo, más adelante profundizare más en la utilería como por ejemplo como ejecutar un archivo de sentencias T-SQL, espero que les sirva.

SALUDOS!