Haz invertido horas y/o días afinando y optimizando algunos queries en el editor SQL Server Management Studio (SSMS). De pronto, el ordenador instaló una actualización del sistema operativo y reinició automáticamente, o de reprente SSMS falla y se cierra sin avisar, esto sin aún haber grabado el trabajo en el ordenador. Claro, siempre confiamos en que la funcionalidad de recuperación automática de SSMS nos va a ayudar a recuperar todo el trabajo que habíamos hecho. Pero, ¿qué pasa si la recuperación automática no funciona? ¿Perdimos todo el trabajo y el tiempo invertido? En este momento nos convertimos en seres lleno de pánico, preocupación, frustración y odio al mismo tiempo. ¿Quién se identifica?

Hasta que pensamos… ¿Existe alguna otra forma para recuperar el trabajo?

Afortunadamente, ¡no todo está perdido aún! Uff, respira… Relajate un poco…

Ok, ahora, mano a la obra.

Dependiendo del sistema operativo que estés utilizando puedes buscar tu trabajo en la carpeta donde SSMS hace su resguardo.

Windows XP

En Windows XP, SSMS hace su resguardo de los queries que estaban siendo trabajados en la carpeta:

C:\Documents and Settings\<nombre de usuario>\My Documents\SQL Server Management Studio\Backup Files\Solution1

Windows 7, 8, 10

El trabajo puede ser recuperado en la carpeta:

C:\Users\<nombre de usuario>\Documents\SQL Server Management Studio\Backup Files\Solution1

Los nombre de los archivos resguardados son poco convensionales. Así que, probablemente, tengas que abrir cada uno de ellos para encontrar el que necesitas.

Si no tienes esta carpeta disponibles en tu ordenador, todavía queda una opción por intentar…

Caché de Queries de SQL Server

Este puede ser el último recurso para recuperar tu trabajo “casi” perdido. SQL Server provee una lista de los códigos que fueron ejecutados en las pasadas 24 horas. ¡ALELUYA!

Ahora ejecuta este query y recupera tu trabajo:

Use <base de datos>
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC

 

Conclusión

Ya sabes que es posible recuperar el trabajo realizado cuando todo parece estar perdido. De todos modos, no podemos tomar por sentado de que estos métodos siempre funcionarán.

Debemos tomar como costumbre guardar nuestro trabajo frecuentemente. Esto es tan sencillo como presionar en el teclado CTRL+S cada vez que hagas un cambio significativo.