在SQL Server中调试远程聚合
本文关键字:程聚 调试 SQL Server | 更新日期: 2023-09-27 18:14:19
所以我遇到了一个大问题。我需要调试一个自定义聚合,并且我能够构建和部署它,但一旦开始,它就不允许出现以下情况:
- 任何情况下的管理员访问权限
File.Write
访问(不写入文本文件(EventLog
访问Remote Debugging
访问由于防火墙、用户权限等方面的复杂性- 通过本地安装
SQL Server
获取数据。我将数据存储在一个远程位置,无法将其转储以进行测试
在这种情况下,我将如何调试自定义聚合?当尝试使用File.Write
或EventLog.WriteEvent
时,它会引发安全访问异常。
有没有一种方法可以在每次聚合函数调用时打印输出?我想知道在Merge()
、Terminate()
等中正在泵送和倾倒什么。
我有什么东西不见了吗?谢谢
考虑到这些困难的访问限制,我们能够想出一个解决方案。它并不完美,但它为我们提供了所需的输出。
我们的解决方案是创建一个StringBuilder
实例。
StringBuilder sb = new StringBuidlder();
并在需要调试的地方添加内容:
sb.Append("|Debug information");
最后,我们将StringBuilder
附加到采集结果中。与其返回"测试",我们会返回这样的东西:
"test|debug information|more debug information|more debug information."
然后我们会复制这些信息,并将其用于调试。这并不完美,但我们能够通过拆分结果来分离结果,并完成任务。