You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server Management Studio及SSMS 2008 R2中查看SQL查询历史?

在SSMS 2008 R2中查看特定数据库的查询历史

默认情况下SQL Server不会自动持久化保存所有执行过的查询历史,“管理”下的SQL Server日志仅记录实例级事件(如启动、错误、备份操作等),不会记录具体的用户查询语句。要追溯特定数据库上的UPDATE操作历史,需根据场景选择以下方法:

一、针对已执行过的操作(事后追溯)

如果未提前配置监控,仅能尝试查询计划缓存获取最近执行的查询,但结果不保证能找到目标操作:
执行以下SQL语句,替换你的数据库名和你的表名:

SELECT 
    dest.text AS [执行的SQL语句],
    deqs.last_execution_time AS [最后执行时间],
    d.name AS [数据库名]
FROM 
    sys.dm_exec_query_stats deqs
CROSS APPLY 
    sys.dm_exec_sql_text(deqs.sql_handle) dest
JOIN 
    sys.databases d ON dest.dbid = d.database_id
WHERE 
    d.name = '你的数据库名'
    AND dest.text LIKE '%UPDATE 你的表名%'
ORDER BY 
    deqs.last_execution_time DESC;

注意:计划缓存会因内存压力、实例重启等被清空,且参数化查询可能不显示具体更新值。

二、针对未来操作(提前监控)

若需要记录后续的查询操作,可使用以下工具:

  • SQL Server Profiler
    打开SSMS的“工具”菜单启动Profiler,新建跟踪并连接目标实例:

    1. 在“事件选择”中勾选SQL:BatchCompleted、RPC:Completed事件;
    2. 添加筛选条件:DatabaseName等于目标数据库,TextData包含UPDATE(或指定表名);
    3. 启动跟踪后即可捕获后续执行的查询语句。
  • 扩展事件
    这是比Profiler更轻量的监控方式,可创建事件会话跟踪sql_statement_completed事件,筛选目标数据库和操作类型,适合长期监控。

  • SQL Server Audit
    配置数据库级审计,指定跟踪UPDATE等数据修改操作,审计日志会持久化保存,需具备相应权限才能配置。

总结:如果目标UPDATE操作已执行且未提前开启监控,大概率无法找回该历史记录;若需后续追踪,可通过上述提前配置的方式实现。

内容的提问来源于stack exchange,提问作者gib65

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:22:08