编程执行Sql语句难免忘记保存执行的文本,或是意外设备故障多种情况的发生。对于写的简单的Sql语句丢了就丢了,但对于自己写的复杂的丢失就有些慌了,有时候很难再次写出来,这时候就需要用一些方法找回Sql语句,下面的方法只适合MS SQLServer:
1 SELECT TOP 1000 2 --创建时间 3 QS.creation_time, 4 --查询语句 5 SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, 6 ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) 7 ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1 8 ) AS statement_text, 9 --执行文本 10 ST.text, 11 --执行计划 12 QS.total_worker_time, 13 QS.last_worker_time, 14 QS.max_worker_time, 15 QS.min_worker_time 16 FROM 17 sys.dm_exec_query_stats QS 18 --关键字 19 CROSS APPLY 20 sys.dm_exec_sql_text(QS.sql_handle) ST 21 ORDER BY 22 QS.creation_time DESC
参考:http://blog.csdn.net/gulingeagle/article/details/50725160 http://blog.csdn.net/dingshuanglei/article/details/79460696