批量更新多个 SSRS 报告

Update Multiple SSRS Reports in bulk

我需要对数百份报告进行相同的更改,我希望通过 SQL 而不是每个单独的报告及其查询来完成。我可以通过 xml 提取报告查询并生成我的报告列表、它们的位置和正在使用的查询。但我无法弄清楚的是如何更新报告查询,然后将其更新回目录中?数据库以便报表本身反映执行时的变化?我从来没有见过这在什么地方是可能的,但也许这里有人尝试过这样做或者知道这是不可能的。

我可以使用 SSIS 来执行此操作,但我不想下载所有 RDL 然后更新,然后 redeploy/upload 报告。希望就地更新 reports/RDLs.

您不必下载 RDL,它们应该已经在您的源代码控制系统中,并且最好收集并分组到项目中。如果是这样,那么您很幸运 - 您可以使用 Visual Studio (BIDS) 或 Notepad++ 的全局 search/replace 功能进行更改。

如果您更改的是报告的结构,那么您可以简单地编写一个快速的讨厌的控制台应用程序来加载 RDL 并操纵 XML 结构。但是像报告查询这样的东西在节点中作为 free-form 文本保存,使得以可靠的方式应用大量更新变得更加困难。

您可以考虑将报表查询重构为存储过程 and/or 函数,这将使以后的更新更容易一些。在任何情况下,如果您更改报告 RDL,您别无选择,只能重新发布修改后的报告 - 服务器上没有 in-place 更改之类的东西(将查询作为存储过程可以避免此问题) .