Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 批量更新多个SSRS报告_Sql Server_Reporting Services_Ssrs 2008 R2 - Fatal编程技术网

Sql server 批量更新多个SSRS报告

Sql server 批量更新多个SSRS报告,sql-server,reporting-services,ssrs-2008-r2,Sql Server,Reporting Services,Ssrs 2008 R2,我需要对数百个报表进行相同的更改,我希望通过SQL而不是每个单独的报表及其查询进行更改。我可以通过xml提取报表查询,并生成报表列表、它们的位置和正在使用的查询。但我不知道如何更新报表查询,然后将其更新回目录?数据库,以便报告本身在执行时反映更改?我从来没有看到这在哪里是可能的,但也许有人在这里试图这样做,或者知道这是完全不可能的 我可以使用SSIS来实现这一点,但我不希望下载所有的RDL,然后进行更新,然后重新部署/上传报告。我们希望及时更新报告/RDL。您不必下载RDL,它们应该已经在您的源

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


我可以使用SSIS来实现这一点,但我不希望下载所有的RDL,然后进行更新,然后重新部署/上传报告。我们希望及时更新报告/RDL。

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

如果您更改的是报告的结构,那么您只需编写一个快速的控制台应用程序来加载RDL并操作XML结构。但像报表查询这样的内容在节点中作为自由格式的文本保存,这使得以可靠的方式应用大规模更新变得更加困难


您可以将报表查询重构为存储过程和/或函数,这将使将来的更新更容易一些。在任何情况下,如果您更改了报告RDL,您别无选择,只能重新发布修改后的RDL-服务器上没有就地更改(将查询作为存储过程可以避免此问题)。

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

如果您更改的是报告的结构,那么您只需编写一个快速的控制台应用程序来加载RDL并操作XML结构。但像报表查询这样的内容在节点中作为自由格式的文本保存,这使得以可靠的方式应用大规模更新变得更加困难


您可以将报表查询重构为存储过程和/或函数,这将使将来的更新更容易一些。在任何情况下,如果您更改报告RDL,您别无选择,只能重新发布修改后的RDL—服务器上没有就地更改(将查询作为存储过程可以避免此问题)。

Slugster,感谢您的评论和确认。不幸的是,这些报告是由业务中的几个不同的人创建的,几个月前我就陷入了这种混乱。我完全同意使用存储过程,如果我能控制它,我通常会推荐使用存储过程-(Slugster,感谢您的评论和确认。不幸的是,这些报告是由业务中的几个不同的人创建的,几个月前我遇到了这种情况。我完全同意使用存储过程,这是我通常建议的,当我能够控制它时。)-(