Jus*_*ing 2 sql-server sql-server-2008-r2 extended-events
如果我在 SQL Server 2008 R2 中执行这样的扩展事件会话:
CREATE EVENT SESSION [Query tracing] ON SERVER
ADD EVENT sqlserver.rpc_completed
(
ACTION(sqlserver.sql_text)
WHERE sqlsever.database_name = 'master'
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
消息 25706,级别 16,状态 8,第 8 行
找不到事件属性或谓词源“sqlsever.database_name”。
同样发生在 WHERE sqlsever.database_id = DB_ID('master')
有没有办法按数据库过滤?
有两件事是问题所在。
database_nameSQL Server 2008 R2 中没有操作(它是在 SQL Server 2012 中引入的):
select
action_name =
p.name + '.' + o.name
from sys.dm_xe_objects o
inner join sys.dm_xe_packages p
on o.package_guid = p.guid
where o.object_type = 'action'
and o.name like '%database%';
Run Code Online (Sandbox Code Playgroud)
输出是:
action_name
-----------
sqlserver.database_id
sqlserver.database_context
Run Code Online (Sandbox Code Playgroud)
但是有sqlserver.database_id。第二个问题是你的尝试database_id没有成功,因为你有一个错字(你有“sqlsever”,缺少一个“r”)。