Herramienta para generación de Scripts de inserción de datos de forma ágil en SQL Server

 

Una tarea que puede tomar, algunas veces mucho tiempo y que puede ser desgastante, es generar scripts de inserción de datos, en tablas. Y lo frustrante, es que, en muchos escenarios, la información ya se tiene en las propias tablas, pero para facilitar el cargado inicial de datos, en otras bases de datos o el transporte de la misma información, se requiere disponer del Script de inserción de datos.
 
En este escenario, aplica muy bien, la herramienta o procedimiento almacenado InsertGenerator que se puede obtener en este enlace:
http://www.codeproject.com/KB/database/InsertGeneratorPack.aspx
 
Lo que se hace es crear el procedimiento almacenado, en la base de datos, donde se encuentran las tablas con la información, que se desea tener en el Script de inserción y ejecutarlo pasándole, como parámetro, la tabla, para la que se desea generar el Script, así:
 
exec InsertGenerator ClasificacionesVehiculo
 
Con sólo eso, ya, en la ventana de resultados de ejecución de las consultas, de la herramienta de ejecución de consultas de SQL Server, aparece, el Script de Insert.

blog1

Nada más fácil. ¡Que vacano!.
 
Sin embargo, como lo que se quería era sacar la información o script de inserción de varias tablas, se investigó un poco más y, primero que todo, se creó un Script, para generar las instrucciones de insert sobre las tablas requeridas:
 
exec BDHERMESPROD20110310.dbo.InsertGenerator ClasificacionesVehiculo
exec BDHERMESPROD20110310.dbo.InsertGenerator FormasPago
exec BDHERMESPROD20110310.dbo.InsertGenerator GruposUsuario
exec BDHERMESPROD20110310.dbo.InsertGenerator Menus
exec BDHERMESPROD20110310.dbo.InsertGenerator Formularios
exec BDHERMESPROD20110310.dbo.InsertGenerator Plataformas
 

 
Fijarse como, se indica la base de datos donde se encuentra definido el procedimiento almacenado InsertGenerator y el propósito de ello es ejecutar el Script desde la consola del DOS, a través de la utilidad SQLCMD y poder generar, así, de una vez, el script de inserción, para cada tabla, de una forma aún más rápida:
 
sqlcmd -SMVMsb102 -UIUSR_HERMES -PIUSR_HERMES -i GeneScriptsTiposBasicos.sql -o insert.sql
 
Aquí, entonces,
 
S: El servidor es MVMsb102
U: EL usuario IUSR_HERMES
P: La clave, la misma
i: El Script a ejecutar, en este caso, GeneScriptsTiposBasicos.sql, que contiene las instrucciones de generación del insert sobre las tablas, mostradas arriba.
o: El archivo donde quedará el resultado de la ejecución del Script GeneScriptsTiposBasicos.sql
 
Al dar enter y ejecutar el comando, efectivamente, se genera el Script, con las instrucciones de inserción sobre las tablas. Así:


blog2 

Lo que resta  entonces es utilizar la instrucción USE, para indicar la base de datos donde se ejecutarán los Scripts de inserción y modificar los textos del tipo:
(x filas afectadas)
Por la palabra reservada GO, como se muestra a continuación y listo.

blog3

De esta forma,  se obtienen los Scripts de inserción de datos sobre varias tablas, de una forma ágil y rápida.


Resumen de pasos:
1.       Crear el procedimiento InsertGenerator en la BD donde se encuentran las tablas con la información.
2.       Crear el Script de generación de inserts sobre tablas
Ejemplo:
exec BDHERMESPROD20110310.dbo.InsertGenerator ClasificacionesVehiculo
exec BDHERMESPROD20110310.dbo.InsertGenerator FormasPago
3.       Ejecutar la instrucción:
sqlcmd -S -U -P -i –o
 
En la consola de DOS.
Especificando, apropiadamente:
El servidor, el usuario y clave de conexión a la BD, el Script a ejecutar y el nombre del archivo con el resultado
4.       Adecuar el Script, para su ejecución, en SQL Server. Es decir, indicar la base de datos con USE y colocar los GO.

Espero que esta herramienta sea de utilidad.

Comentarios

Entradas populares de este blog

Visual Studio 2012 Backup and Restore bases de datos

Configuración de expresiones en Quartz

Hacer que Windows XP luzca como Windows 7