如何控制服务器端 SQL 事件探查器跟踪中的列顺序



我创建了一个启动服务器端探查器跟踪的存储过程。 最初,我从探查器的"文件/导出/脚本跟踪定义"选项生成了 SQL 脚本。 从那以后,我对它进行了一些修改,使其更友好。

该脚本执行以下操作:

exec sp_trace_create... -- creates the trace
exec sp_trace_setevent <traceID>, <eventID>, <columnID>, 1... (many of these per event)
exec sp_trace_setfilter...(a few filters)
exec sp_trace_setstatus <traceID>, 1 -- starts the trace
跟踪

完成后,我检查跟踪文件时,跟踪列以看起来像任意顺序显示。 它与我添加到每个跟踪事件的列顺序不匹配。 我希望列以不同的顺序显示。

使用服务器端跟踪时,有没有办法控制跟踪文件中列的顺序?

我们的产品在 SQL Server 版本 2005 到 2012 上运行,但需要特定数据库版本的答案是可以的。

另请注意,我知道扩展事件,但我专门寻找有关服务器端探查器跟踪的答案。

正如 Aaron Bertrand 指出的那样,在写入跟踪文件时无法控制列的顺序。

可以使用函数sys.fn_trace_gettable将跟踪数据检索到表中,然后按任意顺序从表中选择数据。

还可以让服务器端跟踪将事件保存到表中。 创建跟踪时,在跟踪属性中选择"保存到表"选项。

最新更新