@
leyendo...
Tecnología

Muy buena utilidad para hacer “split” de archivos .SQL

Recientemente, tuve la necesidad de cargar un poco más de 187,000 archivos hacia SQL Server 2008 R2 SP2. Pues nada, abrir el archivo con extensión SQL desde el SQL Server Management Studio y listo. No señor; error.

Error SSMS

Bueno, habrá que hacer “split” o división en varios archivos. Yo tenía presente que en SSMS el editor de queries aguanta unas 10,000 entradas, así que procedí a ubicar un programa que me ayudase con la división y me encontré con GSplit.

Este es un programa gratuito que permite, con diversas condiciones, dividir un archivo grande en varios relacionados, que es justo lo que necesito.

Al abrir el programa, luego de descargarlo e instalarlo obviamente, se encuentra uno con esta pantalla:

GSplit 1

El programa es fácil de manejar y solo hay que indicar el archivo original, la carpeta destino y la manera en la cual las “piezas” se generarán. En mi caso en particular, definí dichas piezas de esta manera:

GSplit 2

Y en tipo y tamaño, especifiqué lo siguiente:

GSplit 3

Importante, revisar en “Other Properties” para dejarla así:

GSplit 4

Luego de esto, van al link “Split File!” y presionan Split!:

GSplit 5

Asegurense de incrementar el tamaño del buffer; en mi caso, lo dejé en 256 KB.

Luego de algunos segundos, aparece esta ventana indicando que el proceso fue exitoso:

GSplit 6

Y por supuesto, al abrir cada archivo, en SSMS, no salió el error.

Sin embargo, me di cuenta que tenía otro problema, además de tener que cargar manualmente cada archivo con extensión SQL en el SSMS, y es que me interesaría generar un registro de los errores para identificar si sucede alguno y como corregir. Umm, habrá que usar SQLCMD.

Procedí entonces a usar Notepad++ para generar el siguiente script T-SQL:

sqlcmd -i C:\Temp\disk1.sql -o C:\Temp\disk1.txt
sqlcmd -i C:\Temp\disk2.sql -o C:\Temp\disk2.txt
sqlcmd -i C:\Temp\disk3.sql -o C:\Temp\disk3.txt
sqlcmd -i C:\Temp\disk4.sql -o C:\Temp\disk4.txt
sqlcmd -i C:\Temp\disk5.sql -o C:\Temp\disk5.txt
sqlcmd -i C:\Temp\disk6.sql -o C:\Temp\disk6.txt
sqlcmd -i C:\Temp\disk7.sql -o C:\Temp\disk7.txt
sqlcmd -i C:\Temp\disk8.sql -o C:\Temp\disk8.txt
sqlcmd -i C:\Temp\disk9.sql -o C:\Temp\disk9.txt
sqlcmd -i C:\Temp\disk10.sql -o C:\Temp\disk10.txt
sqlcmd -i C:\Temp\disk11.sql -o C:\Temp\disk11.txt
sqlcmd -i C:\Temp\disk12.sql -o C:\Temp\disk12.txt
sqlcmd -i C:\Temp\disk13.sql -o C:\Temp\disk13.txt
sqlcmd -i C:\Temp\disk14.sql -o C:\Temp\disk14.txt
sqlcmd -i C:\Temp\disk15.sql -o C:\Temp\disk15.txt
sqlcmd -i C:\Temp\disk16.sql -o C:\Temp\disk16.txt
sqlcmd -i C:\Temp\disk17.sql -o C:\Temp\disk17.txt
sqlcmd -i C:\Temp\disk18.sql -o C:\Temp\disk18.txt
sqlcmd -i C:\Temp\disk19.sql -o C:\Temp\disk19.txt

Inserté dichos archivos dentro de un archivo con extensión BAT y listo. Obviamente se puede seguir automatizando, pero para los efectos requeridos, creo que el objetivo se cumplió.

Saludos.

Comentarios

Los comentarios están cerrados.

Categorías

Archivos

A %d blogueros les gusta esto: