Ripristina script di query SQL non salvati


196

Come recuperare gli script non salvati se l'SSMS si arresta in modo anomalo / la scheda non salvata viene accidentalmente chiusa?


3
Sono d'accordo con John in linea di principio; tuttavia, questo succede di tanto in tanto a tutti noi: "Pensavo di averlo salvato!" Prendi l'abitudine di SALVARE PRIMA prima di iniziare a scrivere codice. Ctrl + S è tuo amico!
Graeme,

4
Prova SSMSBOOST (modalità community gratuita) o Redgate (non gratuito, ma molto utile)
Vasily Ivoyzha,

2
Purtroppo SSMS al momento non ha la funzione Annulla scheda chiusa. Ho creato il seguente elemento Connect in modo che Microsoft lo aggiunga, si spera, in una versione futura: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Risposte:


425

Pubblicando questo nel caso in cui qualcuno si imbatte nello stesso problema.

Cerca su Google Recupera script non salvati e trova una soluzione.

Esegui il seguente selectscript. Fornisce un elenco di script e il suo tempo di esecuzione nelle ultime 24 ore. Questo sarà utile per recuperare gli script, se chiudiamo la nostra finestra di query nello studio di gestione di SQL Server senza salvare lo script. Funziona per tutti gli script eseguiti non solo per una vista o una procedura.

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

27
Questo è sicuramente un modo fuori dagli schemi per trovare le tue query, ma conterrà le informazioni solo finché la query rimarrà nella cache del piano (o fino al riavvio di SQL Server, a seconda dell'evento che si verifica per primo). Dovresti comunque prendere l'abitudine di salvare il tuo lavoro.
Matt,

5
Vale la pena notare che è necessario disporre dell'autorizzazione VIEW SERVER STATE per eseguire questa query
BornToCode

4
Se stai eseguendo questa query su un database che ha molte query in esecuzione su di esso, ti consiglio di aggiungere una condizione di filtro è la clausola where come dove execsql.text come '% Alcune parti del tuo script da cercare per%'
Jeff Fol

3
Grazie per l'interrogazione, questo mi ha permesso di risparmiare parecchio tempo quando ho chiuso per sbaglio la scheda sbagliata. Dato che ci sono molte esecuzioni spazzatura (ovvero cose che non vuoi), posso offrire una piccola aggiunta per filtrare le cose in eccesso scaricandole tutte in una tabella temporanea e poi leggendole filtrate?
Sava Glodic

3
questo lavoro perfetto per me, ho sviluppato quella sceneggiatura tutta la mattina, poi ho chiuso la finestra senza salvarla e ho iniziato a piangere.
RobsionKarls

167

Si può essere in grado di trovarli in una di queste posizioni (a seconda della versione di Windows in uso).

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

Google da questa fonte e questa fonte.


2
La versione di Windows su cui sto lavorando è Windows 7. Nessun file in questa posizione. È vuoto. in AppData \ Local \ Temp i file di query di Microsoft SQL Server sono o kb.
BumbleBee,

2
Questo è fantastico - mi ha risparmiato un paio d'ore di lavoro dopo un crash del sistema! Trovato il file inBackup Files\Solution1
Kevin Pope

4
Se solo potessi votare questa risposta per il numero di ore salvate non dovendo riscrivere una query persa.
ctorx,

1
provato a cercare nella cartella temp .. esistono file come ~ vsA497.sql ma la dimensione di ciascuno è 0kb, anche dopo l'apertura non ottengo alcuna riga scritta nel file. Nella cartella di backup non è presente alcun file.
Segna il

1
C: \ Users \ NomeUtente \ AppData \ Local \ Temp ha recuperato esattamente ciò che ho perso. Il file è stato perso 5 minuti fa, Windows 10, SQL Server Management Studio 17.
dmoney

52

Un po 'tardi alla festa, ma nessuna delle posizioni menzionate in precedenza ha funzionato per me - per qualche motivo i file di backup / salvataggio automatico sono stati salvati nella cartella VS15 sul mio PC (questo è per SQL Server 2016 Management Studio)

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

Potresti voler controllare le tue Strumenti-Opzioni-Ambiente-Impostazioni di importazione ed esportazione, la posizione dei file delle impostazioni potrebbe indirizzarti alla tua cartella di backup - non avrei mai cercato nella cartella VS15 per questo.


7
Questo è corretto per SSMS 2017, ho invece trovato i miei file persi in questa cartella
VS15

1
Controlla questa cartella; il mio si nascondeva anche qui.
Radderz,

1
GRAZIE, GRAZIE, GRAZIE!!!! Aveva uno script abbastanza grande perso a causa di un crash imprevisto, e questa è la cartella in cui è finita !!!
Unfallener,

1
Grazie - non sono riuscito a trovare i miei script da nessuna parte!
keithm

2
Dovresti ottenere un badge eroe per questo
Joe Schmucker,

32

Utilizzare la seguente posizione in cui è possibile trovare tutti ~AutoRecover.~vs*.sql( file di salvataggio automatico ):

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

4
"questa cartella è vuota"
adolf garlic

Questo è quello che non riuscivo a ricordare. Non l'ho limitato alla cartella pubblicata e ho trovato ciò che avevo perso a causa della morte di SSMS.
Jeff Moden,

1
Oppure puoi provare: C: \ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ File di backup \ Solution1
Mandar

11

Forse non trovi le directory suggerite o il tuo file di recupero è mancante, grazie a Dio ho replicato l'incidente con uno script non salvato e mi porta in questa directory:

C: \ Users \ user \ OneDrive \ Documents \ Visual Studio 2015 \ File di backup \ Solution1

Quindi, forse questo ti salva la giornata :)


9

So che questo è un vecchio thread, ma per chiunque cerchi di recuperare uno script dopo gli arresti anomali di ssms, procedi come segue

  1. Apri disco locale (C):
  2. Apri cartella utenti
  3. Trova la cartella pertinente per il tuo nome utente e aprila
  4. Fai clic sul file Documenti
  5. Fare clic sulla cartella Visual Studio o fare clic sulla cartella File di backup se visibile
  6. Fare clic sulla cartella dei file di backup
  7. Apri la cartella Solution1
  8. Tutti i file temporanei recuperati saranno qui. I file finiranno con vs seguito da un numero come vs9E61
  9. Apri i file e controlla il codice perso. Spero che aiuti. Quei passaggi esatti hanno appena funzionato per me. sto usando SQL Server Express 2017

7

Sto usando Windows 8 e ho trovato gli script mancanti nel percorso seguente:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files

7

Vai su SSMS >> Strumenti >> Opzioni >> Ambiente >> Ripristino automatico

Esistono due diverse impostazioni:

1) Salva informazioni di recupero automatico ogni minuto

Questa opzione salverà il file di query SQL a un certo intervallo. Impostare questa opzione sul valore minimo possibile per evitare perdite. Se hai impostato questo valore su 5, nel peggiore dei casi, puoi perdere gli ultimi 5 minuti di lavoro.

2) Conservare le informazioni di recupero automatico per giorni

Questa opzione conserverà le informazioni di AutoRecovery per i giorni specificati. Tuttavia, in caso di incidente suggerisco di aprire subito SQL Server Management Studio e recuperare il file. Non procrastinare questo importante compito per le date future.


11
Una mia installazione automatica aziendale ha riavviato il mio computer in mia assenza - questo avrebbe forzato la chiusura di tutte le app. C'erano delle schede aperte, alcune salvate altre no. Ho selezionato entrambe queste opzioni e non ci sono opzioni di ripristino né documenti "temporanei" in altre posizioni dichiarate da altri rispondenti
adolf garlic

Ho entrambe le opzioni ma nulla è stato recuperato dopo il fallimento di SSMS.
Kate,

6

Componente aggiuntivo SSMSBoost (attualmente gratuito)

  • tiene traccia di tutte le istruzioni eseguite (le salva sul disco)
  • regulary salva l'istantanea del contenuto dell'editor SQL. Tieni la cronologia delle modifiche della tua sceneggiatura. A volte la versione "migliore" non è l'ultima e si desidera ripristinare lo stato intermedio.
  • tiene traccia delle schede aperte e consente di ripristinarle dopo il riavvio. Anche le schede non salvate vengono ripristinate.

+ tonnellate di altre funzionalità. (Sono lo sviluppatore del componente aggiuntivo)


1
Questo è un componente aggiuntivo meraviglioso, tra l'altro. Mi ha appena salvato due ore di lavoro che pensavo di aver salvato, ma che non avevo. (Non ho affiliazione con Andrei)
Jonathan

Vorrei poter votare di più. SSMSBoost ha "salvato il mio bacon" più di una volta.
Andrew Steitz,

4

Puoi trovare i file qui, quando hai chiuso accidentalmente la finestra SSMS

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1

Sistema operativo Windows 8.1?
Kiquenet,

4

Sono stato in grado di recuperare i miei file dal seguente percorso:

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

Dovrebbero essere presenti diversi file di ripristino per scheda. Direi cercare i file per la data in cui li hai persi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.