如何解决SQL Server 中执行查询的日志
-
有 5 个用户的数据库
-
所有用户都在数据库上运行查询
-
我们需要找出所有用户喜欢做的事情(查询、会话 ID、开始时间、结束时间、数据库名称、用户名、主机名)
-
我们需要将所有数据插入一张表中。
解决方法
SELECT sdest.DatabaseName,sdes.session_id,sdes.[host_name],sdes.[program_name],sdes.client_interface_name,sdes.login_name,sdes.login_time,sdes.nt_domain,sdes.nt_user_name,sdec.client_net_address,sdec.local_net_address,sdest.ObjName,sdest.Query
FROM sys.dm_exec_sessions AS sdes
INNER JOIN sys.dm_exec_connections AS sdec ON sdec.session_id = sdes.session_id
CROSS APPLY (
SELECT db_name(dbid) AS DatabaseName,object_id(objectid) AS ObjName,ISNULL((
SELECT TEXT AS [processing-instruction(definition)]
FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
FOR XML PATH(''),TYPE
),'') AS Query
FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
) sdest
where sdes.session_id <> @@SPID
--and sdes.nt_user_name = '' -- Put the username here !
ORDER BY sdec.session_id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。