2017-01-17 59 views
0

我需要对数百个报告进行相同的更改,并且我希望能够通过SQL而不是每个个别报告执行此操作,并且这是查询。我可以通过xml提取报表查询并生成我的报表列表,它们的位置以及正在使用的查询。但我无法弄清楚的是如何更新报表查询,然后将其更新回目录?数据库,以便报告本身反映执行时的变化?我从来没有看到这是可能的,但也许有人在这里试图做到这一点,或知道这是不可能的。批量更新多个SSRS报告

我可以使用SSIS并执行此操作,但我不希望下载所有RDL,然后进行更新,然后重新部署/上载报告。希望能够更新报告/ RDL。

回答

2

您不应该下载RDL,它们应该已经在您的源代码管理系统中,并且理想地收集并分组到项目中。如果是这样,你很幸运 - 你可以使用Visual Studio(BIDS)或Notepad ++的全局搜索/替换功能来进行更改。

如果您的更改是针对报告的结构,那么您可以简单编写一个快速讨厌的控制台应用程序来加载RDL并操纵XML结构。但是,像报表查询之类的东西在节点中以自由形式的文本形式保存,使得以可靠的方式应用批量更新变得更加困难。

您可以将报表查询重构为存储过程和/或函数,这将使未来的更新变得更容易一些。无论如何,如果您更改RDL报表,您别无选择,只能重新发布已修改的报表 - 不存在服务器就地更改(将查询作为存储过程避免此问题)。

+0

Slugster,感谢您的意见和确认。不幸的是,这些报告是由几个不同的业务人员创建的,几个月前我陷入了这个混乱局面。我完全同意使用存储过程,这是我通常推荐的,当我可以控制这个。 :-( –