由于 SQL Server 版本过时,我必须使用服务器端跟踪来收集一些信息,但如果我尝试实现它,则会收到错误Filters with the same event column ID must be grouped together
。我的代码:
exec sp_trace_setfilter 2, 10, 0, 7, N'SQL Server Profiler%'
exec sp_trace_setfilter 2, 10, 0, 7, N'DatabaseMail%'
exec sp_trace_setfilter 2, 10, 0, 7, N'SQLAgent%'
Run Code Online (Sandbox Code Playgroud)
sp_trace_setfilter 1, 10, 0, 6, N'SQLT%';
sp_trace_setfilter 1, 10, 0, 6, N'MS%';
Run Code Online (Sandbox Code Playgroud)
通常它可能是显而易见的事情,但我不知道为什么它不起作用(它不是分号)。
你们中有人有想法吗?
我收到错误“具有相同事件列 ID 的过滤器必须分组在一起”。
跟踪似乎已经在 ApplicationName 列(第 10 列)上有一个或多个过滤器,然后在其他列上有过滤器。当您添加另一个 ApplicationName 筛选器时,您会收到错误,因为该列与最后添加的筛选器不同。SQL 跟踪要求给定列上的所有过滤器按顺序添加(即“分组在一起”)。
问题脚本示例:
-- add application name not like filter
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Microsoft SQL Server Management Studio%'
-- add host name equal filter
exec sp_trace_setfilter @TraceID, 8, 0, 0, N'YourServer'
-- add another application name not like filter
-- this errs because the last filter added is not application name
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
Run Code Online (Sandbox Code Playgroud)
修复后的脚本:
-- add application name not like filters
-- this succeeds because the app name filters are grouped together
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Microsoft SQL Server Management Studio%'
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
-- add host name equal filter
exec sp_trace_setfilter @TraceID, 8, 0, 0, N'YourServer'
Run Code Online (Sandbox Code Playgroud)
请注意,此分组要求适用于初始跟踪创建脚本以及随后添加过滤器时。将另一个过滤器添加到跟踪时意味着以下情况之一适用:
归档时间: |
|
查看次数: |
546 次 |
最近记录: |