[Poiché questa domanda verrà probabilmente chiusa come duplicato.]
Se SQL Server non è stato riavviato (e il piano non è stato rimosso e così via), potresti riuscire a trovare la query nella cache del piano.
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%';
Se hai perso il file a causa di un arresto anomalo di Management Studio, potresti essere in grado di trovare i file di ripristino qui:
C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\
Altrimenti dovrai usare qualcos'altro in futuro per aiutarti a salvare la cronologia delle query, come SSMS Tools Pack come menzionato nella risposta di Ed Harper, sebbene non sia gratuito in SQL Server 2012+. Oppure puoi impostare una traccia leggera filtrata sul tuo nome di accesso o host (ma usa una traccia lato server, non Profiler, per questo).
Come ha commentato @Nenad-Zivkovic, potrebbe essere utile partecipare a sys.dm_exec_query_stats
e ordina per 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;