miércoles, 17 de octubre de 2012

Backup en SQLServer mediante SQLServerDump


Para no perder el hilo tecnológico que una vez quise dar a mi blog, en esta ocasión dejo anotada una entrada que puede ser que a más de un programador le sirva.

En ocasiones, usando SQLServer, nos vemos obligados ha hacer un backup de datos de una base de datos, o de una tabla de forma específica.
Es curioso, pero SQLServer no lleva tal opción. O al menos yo no la he encontrado ni en el 2012 ni en el 2008.
Así que la solución es tirar de un programa externo a Microsoft pero que funciona bastante bien.

El programa se llama SQLServerDump y lo podéis descargar gratuítamente y líbremente desde aquí : http://sqlserverdump.codeplex.com/

El programa funciona por linea de comandos, así que no es tan fácil como presionar un botón, pero tiene el encanto de escribir sentencias.

Las sentencias, y el cómo se utiliza, lo podéis ver en el apartado "documentation" : http://sqlserverdump.codeplex.com/documentation

De cualquier forma, os dejo un ejemplo que será el que a todos más o menos le podrá valer.

Descargas el programa, y lo dejas en donde quieras, C: es un buen sitio para encontrarlo rapido

Abres la linea de comandos "Windows-ejecutar: cmd"

y ahí te vas a c: (o donde hayas dejado el programa)
cd C:\

Y una vez ahí, tenéis que ejecutar el programa con las opciones de las api que queráis usar.

Por ejemplo, para sacar un script de una base de datos entera

C:\>;sqlserverdump.exe --result-file=prueba.sql NB_BASE_DATOS

y guardardaremos todas las sentencias sql de create, insert, y demás en un archivo llamado prueba.sql al mismo nivel que el programa

O por ejemplo, si quisiesemos guardar sólo una tabla

C:\>;sqlserverdump.exe --result-file=prueba.sql NB_BASE_DATOS NB_TABLA

Exacto, el nombre de la tabla a continuación del nombre de la bd.

El programa trae más opciones, y se puede jugar con él un poco más, pero con esto nos podemos apañar.
Si alguien quiere más información, o hacer algo más específico, le vuelvo a remitir a la documentación : http://sqlserverdump.codeplex.com/documentation

¡Espero que os haya podido servir de ayuda!

Actualización 23/10/2012:
Se me acaba de dar el caso que al lanzarlo me decía:
There is no local instance running
La solución ha sido tan fácil como (leyendo la API) decirle el nombre de la instancia que es el nombre de vuestro equipo (o del que esté montada la base de datos SQLServer) \ SQLEXPRESS

Por ejemplo, añadir después del nombre del archivo resultante y antes del nombre de la BD a usar:
--server-name=chabier\SQLEXPRESS

martes, 16 de octubre de 2012

Refranes en el trabajo

Si 1 mujer tiene 1 hijo en 9 meses, 9 mujeres no pueden tener 1 hijo en 1 mes.

José Manuel, filósolo informático.

Después de que manden dividir tareas entre más gente, para terminar antes, sin tener en cuenta que hay cosas que se terminan antes trabajando menos gente porque no se pueden dividir.
Locuras de las grandes empresas.