在SQL Server中调试远程聚合

时间:2015-09-23 18:32:44

标签: c# sql-server clr aggregate-functions

所以我有一个大问题。我需要调试自定义聚合,并且我能够构建和部署它,但是一旦它开始,它就不会允许以下内容:

  1. 在任何情况下都可以访问管理员。
  2. File.Write访问(无文字文件)
  3. EventLog访问。
  4. 由于复杂的防火墙,用户权限等,
  5. Remote Debugging访问。
  6. 通过SQL Server的本地安装获取数据。我将数据存储在一个远程位置,而且我无法将其转储进行测试。
  7. 如何在此方案中调试自定义聚合?尝试使用File.WriteEventLog.WriteEvent时,会引发安全访问异常。

    有没有办法在每次聚合函数调用期间打印输出?我想知道在Merge()Terminate()等等被抽取和转储的内容。

    我有什么遗失的东西吗?感谢。

1 个答案:

答案 0 :(得分:0)

鉴于这些困难的访问限制,我们能够提出解决方案。它并不完美,但它为我们提供了所需的输出。

我们的解决方案是创建一个StringBuilder实例。

StringBuilder sb = new StringBuidlder();

并在需要调试时添加内容:

sb.Append("|Debug information");

最后,我们将StringBuilder追加到收集结果中。而不是回到“测试”,我们会得到这样的东西:

"test|debug information|more debug information|more debug information." 

然后我们将复制该信息,并将其用于调试。它并不完美,但我们能够通过分割它们来分离结果,并完成工作。