Recuperar scripts de consulta SQL no guardados

196

¿Cómo recuperar los scripts no guardados si el SSMS se bloquea / la pestaña no guardada se cierra accidentalmente?

Abejorro
fuente
3
Estoy de acuerdo con John en principio; sin embargo, esto sucede de vez en cuando para todos nosotros: "¡Pensé que había guardado eso!" Acostúmbrese a AHORRAR PRIMERO antes de comenzar a codificar. Ctrl + S es tu amigo!
Graeme
44
Pruebe SSMSBOOST (modo de comunidad gratuita) o Redgate (no es gratuito, pero es muy útil)
Vasily Ivoyzha
2
Desafortunadamente, SSMS actualmente no tiene la función Deshacer pestaña cerrada. He creado el siguiente elemento de conexión para que Microsoft espere agregarlo en una versión futura: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Respuestas:

425

Publicar esto en caso de que alguien tropiece con el mismo problema.

Buscado en Google para recuperar guiones no guardados y encontré una solución.

Ejecute el siguiente selectscript. Proporciona una lista de scripts y su tiempo de ejecución en las últimas 24 horas. Esto será útil para recuperar los scripts, si cerramos nuestra ventana de consulta en el estudio de administración de SQL Server sin guardar el script. Funciona para todos los scripts ejecutados, no solo para una vista o procedimiento.

Use <database>
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
Abejorro
fuente
27
Definitivamente, es una forma innovadora de encontrar sus consultas, pero solo contendrá información mientras la consulta permanezca en la caché del plan (o hasta que se reinicie SQL Server, lo que ocurra primero). Aún debe acostumbrarse a guardar su trabajo.
Matt
55
Vale la pena señalar que debe tener el permiso VER ESTADO DEL SERVIDOR para ejecutar esta consulta
BornToCode
44
Si está ejecutando esta consulta en una base de datos que tiene muchas consultas ejecutándose en su contra, recomendaría agregar una condición de filtro es la cláusula where, como where execsql.text como '% alguna parte de su script para buscar por%'
Jeff Fol
3
Gracias por la consulta, esto me ahorró una cantidad considerable de tiempo cuando accidentalmente cerré la pestaña incorrecta. Dado que hay muchas ejecuciones basura (es decir, cosas que no quieres), ¿puedo ofrecerte una pequeña adición de filtrar el exceso de cosas al volcarlo todo en una tabla temporal y luego leerlo, filtrado?
Sava Glodic
3
este trabajo es perfecto para mí, he estado desarrollando ese script toda la mañana, luego cerré la ventana sin guardarlo y comencé a llorar.
RobsionKarls
167

Usted puede que pueda encontrarlos en una de estas ubicaciones (según la versión de Windows que esté utilizando).

Windows XP

C:\Documents and Settings\YourUsername\My Documents\SQL Server Management Studio\Backup Files\

Windows Vista / 7/10

%USERPROFILE%\Documents\SQL Server Management Studio\Backup Files

O

%USERPROFILE%\AppData\Local\Temp

Busqué en Google desde esta fuente y esta fuente.

Mate
fuente
2
La versión de Windows en la que estoy trabajando es Windows 7. No hay archivos en esta ubicación. Esta vacio. bajo AppData \ Local \ Temp, los archivos de consulta de Microsoft SQL Server son o kb.
BumbleBee
2
Esto es genial, ¡me ahorró un par de horas de trabajo después de un bloqueo del sistema! Encontré los archivos enBackup Files\Solution1
Kevin Pope el
44
Si tan solo pudiera votar esta respuesta por la cantidad de horas que ahorré sin tener que volver a escribir una consulta perdida.
ctorx
1
intenté buscar en la carpeta temporal ... existen archivos como ~ vsA497.sql pero el tamaño de cada uno es de 0kb, incluso después de abrir no aparece ninguna línea escrita en el archivo. En la carpeta de respaldo no hay archivo.
Mark
1
C: \ Users \ YourUserName \ AppData \ Local \ Temp recuperó exactamente lo que perdí. El archivo se perdió hace 5 minutos, Windows 10, SQL Server Management Studio 17.
dmoney
52

Un poco tarde para la fiesta, pero ninguna de las ubicaciones mencionadas anteriormente funcionó para mí; por alguna razón, los archivos de copia de seguridad / recuperación automática se guardaron en la carpeta VS15 en mi PC (esto es para SQL Server 2016 Management Studio)

C: \ Users \ YOURUSERNAME \ Documents \ Visual Studio 2015 \ Backup Files \ Solution1

Es posible que desee verificar sus Herramientas-Opciones-Entorno-Importar y exportar configuraciones, la ubicación de los archivos de configuración podría apuntarlo a su carpeta de respaldo; nunca lo habría buscado en la carpeta VS15.

DonQ
fuente
77
Esto es correcto para SSMS 2017, encontré mis archivos perdidos en esta carpeta VS15 en su lugar
Irgnosis
1
Verifique esta carpeta; el mío también se estaba escondiendo aquí.
Radderz
1
¡¡¡¡GRACIAS, GRACIAS, GRACIAS!!!! ¡Se perdió un script bastante grande debido a un bloqueo inesperado, y esta es la carpeta a la que terminó yendo!
Unfallener el
1
Gracias, ¡no pude encontrar mis scripts en ningún lado!
keithm
2
Deberías obtener una insignia de héroe para esta
Joe Schmucker
32

Utilice la siguiente ubicación donde puede encontrar todos ~AutoRecover.~vs*.sql( archivos de recuperación automática ):

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
Mandarín
fuente
44
"esta carpeta está vacía"
adolf ajo
Este es el que no podía recordar. No lo limité a la carpeta publicada y encontré lo que había perdido por una muerte de SSMS.
Jeff Moden
1
O puede intentar: C: \ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ Backup Files \ Solution1
Mandar
11

Tal vez no encuentre los directorios sugeridos o su archivo de recuperación no se encuentre, gracias a Dios, repliqué el bloqueo con un script no guardado y me llevó a este directorio:

C: \ Users \ user \ OneDrive \ Documents \ Visual Studio 2015 \ Backup Files \ Solution1

Entonces, tal vez esto te salve el día :)

frapeti
fuente
9

Sé que este es un hilo antiguo, pero para cualquiera que busque recuperar un script después de fallas de SMS haga lo siguiente

  1. Abrir disco local (C):
  2. Carpeta de usuarios abiertos
  3. Encuentre la carpeta relevante para su nombre de usuario y ábrala
  4. Haga clic en el archivo de documentos
  5. Haga clic en la carpeta de Visual Studio o haga clic en Carpeta de archivos de respaldo si está visible
  6. Haga clic en la carpeta de archivos de copia de seguridad
  7. Abrir la carpeta Solution1
  8. Cualquier archivo temporal recuperado estará aquí. Los archivos terminarán con vs seguido de un número como vs9E61
  9. Abra los archivos y verifique su código perdido. Espero que ayude. Esos pasos exactos me han funcionado. Estoy usando SQL Server Express 2017
frustración multiplicada
fuente
7

Estoy usando Windows 8 y encontré las secuencias de comandos que faltan en la ruta a continuación:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
PRATAP M
fuente
7

Vaya a SSMS >> Herramientas >> Opciones >> Entorno >> Autorrecuperación

Hay dos configuraciones diferentes:

1) Guardar información de Autorrecuperación cada minuto

Esta opción guardará el archivo de consulta SQL en cierto intervalo. Establezca esta opción en el valor mínimo posible para evitar pérdidas. Si ha establecido este valor en 5, en el peor de los casos, puede perder los últimos 5 minutos del trabajo.

2) Mantenga la información de Autorrecuperación durante días

Esta opción preservará la información de Autorrecuperación para días específicos. Sin embargo, sugiero que en caso de accidente, abra SQL Server Management Studio de inmediato y recupere su archivo. No postergue esta importante tarea para fechas futuras.

noobjet
fuente
11
Una instalación automática corporativa reinició mi máquina en mi ausencia, esto habría forzado el cierre de todas las aplicaciones. Había pestañas abiertas, algunas salvadas, otras no. Tengo ambas opciones seleccionadas y no hay opciones de recuperación ni documentos 'temporales' en otros lugares indicados por otros respondedores
Adolf ajo
Tengo ambas opciones, pero no se recuperó nada después de que SSMS fallara.
Kate
6

Complemento SSMSBoost (actualmente gratuito)

  • realiza un seguimiento de todas las declaraciones ejecutadas (las guarda en el disco)
  • regularmente guarda una instantánea del contenido del Editor SQL. Mantiene el historial de las modificaciones de su script. A veces, la "mejor" versión no es la última y desea restaurar el estado intermedio.
  • realiza un seguimiento de las pestañas abiertas y permite restaurarlas después de reiniciar. Las pestañas sin guardar también se restauran.

+ toneladas de otras características. (Soy el desarrollador del complemento)

Andrei Rantsevich
fuente
1
Este es un complemento maravilloso, por cierto. Me ha ahorrado dos horas de trabajo que pensé que había guardado, pero que no tenía. (No tengo afiliación con Andrei)
Jonathan
Ojalá pudiera votar más. SSMSBoost ha "salvado mi tocino" más de una vez.
Andrew Steitz
4

Puede encontrar archivos aquí, cuando cerró la ventana de SSMS accidentalmente

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1
Naveen
fuente
OS Windows 8.1?
Kiquenet
4

Pude recuperar mis archivos de la siguiente ubicación:

C:\Users\<yourusername>\Documents\SQL Server Management Studio\Backup Files\Solution1

Debería haber diferentes archivos de recuperación por pestaña. Diría que busque los archivos para la fecha en que los perdió.

No programador
fuente