如何以编程方式更新 SQL Server Profiler 模板

How to programatically update SQL Server Profiler template

提问人:Fuzz Evans 提问时间:4/4/2023 最后编辑:marc_sFuzz Evans 更新时间:4/4/2023 访问量:39

问:

我每天都在使用各种数据库进行工作。我构建了一个 C# 工具,用于更改我的系统连接到哪个数据库进行测试。

当我更改数据库的连接详细信息时,我还想在我的 SQL Server Profiler 模板(而不是跟踪文件 - 实际模板)中更新此值。

我在 12 年前发现了这个问题,但没有答案: SQL 事件探查器模板文件格式

我很好奇,在过去十年中,是否有任何新的见解可能在这里有用?

该文件是一个文件,其内容在纯文本中不可读。*.tdf

但是,我在模板属性中定义的数据库名称是纯文本的。

我已经考虑将文件内容读取为字符串,但它将这些 NULL 值视为字符串终止符,这意味着我无法访问它们之间的数据库值。

我也尝试过以这种方式提取字节 - 但没有成功 - 尽管这似乎是迄今为止最可能的方法。ReadAllBytes

有没有人对如何以编程方式修改文件有任何想法,以便我可以简单地将我的数据库名称直接设置到文件中?*.tdf

值得注意的是,如果我在记事本++中打开文件,修改那里的数据库名称,然后保存,Profiler GUI将正确反映更改 - 所以我相信以编程方式进行操作应该可以工作,只要我能想出一种方法。

enter image description here

C# IO SQL 服务器探查器

评论

1赞 jdweng 4/4/2023
我找到了一种使用 Powershell 的方法。请参见 : subscription.packtpub.com/book/...
1赞 Charlieface 4/4/2023
旁注:你可能应该改用扩展事件 (XEvents),因为它们更高效、更灵活,还可以使用 T-SQL 更改它们
0赞 Fuzz Evans 4/5/2023
显然我处于泡沫中 - 我不知道 SQL Profiler 已被弃用。我将开始阅读扩展事件,可能会使我的问题变得毫无意义。谢谢!

答: 暂无答案