[Puisque cette question sera probablement fermée en tant que doublon.]
Si SQL Server n'a pas été redémarré (et que le plan n'a pas été supprimé, etc.), vous pourrez peut-être trouver la requête dans le cache du plan.
SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%';
Si vous avez perdu le fichier parce que Management Studio a planté, vous pourrez peut-être trouver des fichiers de récupération ici :
C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\
Sinon, vous devrez utiliser autre chose pour vous aider à enregistrer l'historique de vos requêtes, comme SSMS Tools Pack, comme mentionné dans la réponse d'Ed Harper - bien qu'il ne soit pas gratuit dans SQL Server 2012+. Ou vous pouvez configurer un suivi léger filtré sur votre connexion ou votre nom d'hôte (mais veuillez utiliser un suivi côté serveur, pas Profiler, pour cela).
Comme @Nenad-Zivkovic l'a commenté, il pourrait être utile de se joindre à sys.dm_exec_query_stats
et commandez avant last_execution_time
:
SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%'
ORDER BY s.last_execution_time DESC;