[Ponieważ to pytanie prawdopodobnie zostanie zamknięte jako duplikat.]
Jeśli SQL Server nie został ponownie uruchomiony (a plan nie został usunięty itp.), możesz znaleźć zapytanie w pamięci podręcznej planu.
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%';
Jeśli utraciłeś plik z powodu awarii Management Studio, możesz znaleźć pliki odzyskiwania tutaj:
C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\
W przeciwnym razie będziesz musiał użyć czegoś innego, aby pomóc Ci zapisać historię zapytań, na przykład pakiet narzędzi SSMS, jak wspomniano w odpowiedzi Eda Harpera – chociaż nie jest to bezpłatne w SQL Server 2012+. Możesz też skonfigurować lekkie śledzenie filtrowane według loginu lub nazwy hosta (ale w tym celu użyj śledzenia po stronie serwera, a nie Profilera).
Jak skomentował @Nenad-Zivkovic, pomocne może być dołączenie do sys.dm_exec_query_stats
i zamów do 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;