Bradley Schacht is a Data Platform Solution Architect on the state and local government team with Microsoft based in Jacksonville, FL. He has co-authored 3 SQL Server books including "SQL Server 2014 Professional Admin". As a former consultant and trainer, he uses his experience on many parts of the Microsoft BI and data platform to help customers deliver the best possible solutions. Bradley frequently presents at community events around the country. He is a contributor to sites such as SQLServerCentral.com and an active member of the Jacksonville SQL Server User Group (JSSUG).
If you have ever closed a query window by accident only to wish you could get back your work an instant later you may be in luck. If you ran the query in question there is hope for you. The query below will return queries that have been run for you including the time and query text. I haven’t figured up a way to get the user that executed the query just yet. So if you have that tidbit to add to this so you can filter a little easier please let us know.
You can narrow the list by adding a where clause and searching for some text you know was in the query or looking around a specific time period. The text wont be formatted pretty when you copy it, but reformatting is better than rewriting!
Without further ado, here is the magic:
a.last_execution_time AS ExectuionTime,
b.text AS Query
FROM sys.dm_exec_query_stats a
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
ORDER BY a.last_execution_time DESC