将所有SSRS报告的共享数据源路径更新到不同的路径

时间:2016-01-13 06:01:06

标签: sql-server reporting-services ssrs-2008-r2 ssrs-2012 ssrs-2014

我正在处理SSRS举报。

最近,我将所有SSRS报告的文件夹位置更改为不同的路径。我还需要更改数据源路径。 (因为我再次移动了报告,我需要设置数据源)所以我不能手动转到Manage

但是有没有快捷方式将数据源路径设置为所有SSRS报告?

2 个答案:

答案 0 :(得分:9)

最后,我找到了解决方案并度过了我的一天。

我浪费了5个小时的时间来找到解决方案。

更新共享的Datasource路径 - 需要更新Datasource的{​​{1}}表。

Report Server

它将显示所有没有连接字符串的报告。现在,您必须使用SELECT cLog.Path,dSource.name FROM DataSource AS dSource JOIN CATALOG AS cLog ON cLog.ItemID = dSource.ItemID WHERE dSource.flags = dSource.flags AND dSource.Link IS NULL AND dSource.ConnectionString IS NULL AND dSource.NAME = 'NameofDatasource' AND cLog.path LIKE '%foldername%' ORDER BY PATH 进行更新。

注意: 要获取最新信息[Link] - 您需要通过手动设置[Link]路径设置其中一个报告并执行以下查询,这将为您提供最新的Datasource

[Link]

现在,仅使用相同的where子句更新它。因此,它会将最新的SELECT ds.Link FROM DataSource AS ds JOIN CATALOG AS c ON c.ItemID = ds.ItemID WHERE ds.NAME = 'NameofDatasource' AND c.path LIKE '%foldername%' AND ds.Link IS NOT NULL 更新为所有报告。

[Link]

注意: 如果直接在实时服务器上执行此查询,请务必小心。这是第一次尝试仅使用上述查询更新一个特定报告,然后在其他人确实需要并且工作正常的情况下为其他人做。

答案 1 :(得分:1)

您可以使用RS.exe或ReportSync实用程序来移动报告和数据源。

您还可以使用T-SQL脚本从ReportServer数据库更新Catalog表。

使用此查询探索数据源路径。

SELECT
  a.Name,
  b.Path
FROM DataSource a
INNER JOIN Catalog b
  ON a.ItemID = b.ItemID

更新数据源的path以指向报告路径。请注意,如果DataSource不是部署到特定文件夹的共享数据源,它将起作用。

UPDATE b
SET b.Path = '<your_path>'
FROM DataSource a
INNER JOIN Catalog b
  ON a.ItemID = b.ItemID
WHERE a.Name IN ('Datasource1', 'Datasource2')
  

我不确定这是否有效,因为我不能在这一刻尝试   我建议您使用已接受的迁移工具 RS.exe 或   的 ReportSync

如果这有助于您,请告诉我。