[Protože tato otázka bude pravděpodobně uzavřena jako duplikát.]
Pokud nebyl SQL Server restartován (a plán nebyl vyřazen atd.), můžete najít dotaz v mezipaměti plánu.
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%';
Pokud jste soubor ztratili z důvodu selhání Management Studio, možná budete moci najít soubory pro obnovení zde:
C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\
V opačném případě budete muset v budoucnu použít něco jiného, co vám pomůže uložit historii dotazů, jako je SSMS Tools Pack, jak je zmíněno v odpovědi Eda Harpera – ačkoli to není zdarma v SQL Server 2012+. Nebo můžete nastavit nějaké zjednodušené trasování filtrované podle vašeho přihlašovacího jména nebo názvu hostitele (k tomu však použijte trasování na straně serveru, nikoli Profiler).
Jak poznamenal @Nenad-Zivkovic, může být užitečné připojit se na sys.dm_exec_query_stats
a objednejte podle 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;