ad-hoc只读查询是否存储在SQL Server事务日志中?

Cat*_*h22 4 sql-server transaction-log sql-server-2008

在SQL Server 2008中配置了数据库恢复模型full,是查询等

从TableName中选择col1,col2,col3

记录到事务日志文件.

换句话说,我可以使用事务日志备份确定特定日期在数据库上运行的查询吗?

Mar*_*ith 5

否.事务日志根本不记录查询.它只记录前滚或回滚事务所需的信息(并且SELECT查询根本不会生成任何记录的活动)

你可以试试

select top 100 *
from sys.fn_dblog(default,default)
Run Code Online (Sandbox Code Playgroud)

看看记录的那种东西.

如果您需要此类信息,则需要设置跟踪/扩展事件会话/ 审计会话以记录它.在大多数环境中,这可能是非常重的重量.

您可以使用以下内容来了解​​正在运行的adhoc查询.

SELECT text 
from sys.dm_exec_cached_plans
cross apply sys.dm_exec_sql_text(plan_handle)
where objtype='Adhoc'
Run Code Online (Sandbox Code Playgroud)