SQL Server 历史SQL执行记录

编程执行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

作者:丁双磊
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/dingshuanglei/p/8515388.html