224 votes

Récupérer des scripts de requêtes SQL non sauvegardés

Comment récupérer les scripts non sauvegardés si le SSMS se bloque / l'onglet non sauvegardé est accidentellement fermé ?

3 votes

Je suis d'accord avec John sur le principe ; cependant, cela nous arrive à tous de temps en temps : "Je pensais avoir sauvegardé ça !". Prenez l'habitude de SAUVEGARDER D'ABORD avant de commencer à coder. Ctrl+S est votre ami !

4 votes

Essayez SSMSBOOST (mode communautaire gratuit), ou Redgate (payant, mais très utile).

2 votes

Malheureusement, SSMS ne dispose pas actuellement de la fonction Annuler un onglet fermé. J'ai créé le Connect Item suivant pour que Microsoft puisse l'ajouter dans une prochaine version : connect.microsoft.com/SQLServer/Feedback/Details/1044403

465voto

BumbleBee Points 1796

Je poste ceci au cas où quelqu'un rencontrerait le même problème.

Googlé pour Récupérer les scripts non sauvegardés et a trouvé une solution.

Exécutez ce qui suit select script. Il fournit une liste de scripts et son heure d'exécution dans les dernières 24 heures. Cela sera utile pour retrouver les scripts, si nous fermons notre fenêtre de requête dans SQL Server management studio sans sauvegarder le script. Il fonctionne pour tous les scripts exécutés et pas seulement pour une vue ou une procédure.

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 votes

Il s'agit d'une façon originale de trouver vos requêtes, mais les informations ne sont conservées que tant que la requête reste dans le cache du plan (ou jusqu'au redémarrage de SQL Server, selon la première éventualité). Vous devriez quand même prendre l'habitude de sauvegarder votre travail.

6 votes

Il convient de noter que vous devez avoir l'autorisation VIEW SERVER STATE afin d'exécuter cette requête

6 votes

Si vous exécutez cette requête sur une base de données qui a de nombreuses requêtes en cours d'exécution contre elle, je recommanderais d'ajouter une condition de filtre dans la clause where comme where execsql.text like '%Some part of your script to search by%'.

182voto

Matt Points 973

Vous mai Vous pourrez les trouver à l'un de ces endroits (en fonction de la version de Windows que vous utilisez).

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

OU

%USERPROFILE%\AppData\Local\Temp

Googlé à partir de cette source y cette source.

2 votes

La version de Windows sur laquelle je travaille est Windows 7. Aucun fichier dans cet emplacement. C'est vide. sous AppData \Local\Temp les fichiers de requête de Microsoft SQL Server sont de 0 kb.

0 votes

Comme je l'ai dit, il n'y a qu'une chance que ce soit dans l'un de ces endroits. Il est également probable que les fichiers ne soient pas récupérables. Nous sommes tous passés par là : vous devez simplement faire plus attention à sauvegarder consciemment votre travail.

2 votes

C'est génial, ça m'a permis de gagner quelques heures de travail après un crash du système ! J'ai trouvé les fichiers dans Backup Files\Solution1

36voto

Mandar Points 91

Utilisez l'emplacement suivant où vous pouvez trouver tous les ~AutoRecover.~vs*.sql ( fichiers d'autorecovery ):

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

5 votes

"ce dossier est vide"

0 votes

C'est celle dont je n'arrivais pas à me souvenir. Je ne l'ai pas limité au dossier affiché et j'ai retrouvé ce que j'avais perdu à cause d'une mort de SSMS.

1 votes

Ou vous pouvez essayer : C:\Users\YourUserName\My Documents \SQL Server Management Studio \Backup Fichiers \Solution1

4voto

mnaveenre Points 39

Vous pouvez trouver les fichiers ici, lorsque vous avez fermé la fenêtre SSMS par accident.

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

0 votes

Système d'exploitation Windows 8.1 ?

1voto

David Atkinson Points 2465

Vous pouvez essayer SQL Tab Magic. Il est "gratuit" pour le moment, mais malheureusement il ne prend en charge que SSMS 2008.

http://www.red-gate.com/products/sql-development/sql-prompt/entrypage/sqltabmagic

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X