Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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_Ssrs 2012_Ssrs 2014 - Fatal编程技术网

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

Sql server 将所有SSRS报告的共享数据源路径更新为不同路径,sql-server,reporting-services,ssrs-2008-r2,ssrs-2012,ssrs-2014,Sql Server,Reporting Services,Ssrs 2008 R2,Ssrs 2012,Ssrs 2014,我正在做SSRS的报告 最近,我已将所有ssr报告的文件夹位置更改为不同的路径。我还需要更改数据源路径。(由于我再次移动了报告,我需要设置数据源),因此我无法通过转到Manage手动删除它 但是,是否有任何快捷方式可以将数据源路径设置为所有ssr报告?您可以使用RS.exe或ReportSync实用程序来移动报告和数据源 您还可以使用T-SQL脚本从ReportServer数据库更新目录表 使用此查询可浏览数据源路径 SELECT a.Name, b.Path FROM DataSour

我正在做SSRS的报告

最近,我已将所有
ssr
报告的文件夹位置更改为不同的路径。我还需要更改数据源路径。(由于我再次移动了报告,我需要设置数据源),因此我无法通过转到
Manage
手动删除它


但是,是否有任何快捷方式可以将数据源路径设置为所有
ssr
报告?

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

您还可以使用T-SQL脚本从ReportServer数据库更新
目录

使用此查询可浏览数据源路径

SELECT
  a.Name,
  b.Path
FROM DataSource a
INNER JOIN Catalog b
  ON a.ItemID = b.ItemID
更新数据源的
路径
,以指向报告路径。注意,如果数据源不是部署到特定文件夹中的共享数据源,那么它将起作用

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')
更新b
设置b.路径=“”
来自数据源a
内部联接目录b
在a.ItemID=b.ItemID上
其中a.名称位于('Datasource1','Datasource2')
我不确定这是否有效,因为我现在无法尝试 我建议您使用公认的迁移工具RS.exe报告同步


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

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

我已经浪费了5个小时来寻找解决方案

要更新共享的
数据源
路径-需要更新
数据源
报表服务器的表

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]
-您需要通过手动设置
数据源
路径设置其中一个报告,并执行下面的查询,这将为您提供最新的
[Link]

现在,只剩下使用相同的where子句对其进行更新。因此,它将更新所有报告的最新
[Link]

UPDATE dSource set [Flags] = [Flags] | 2, [Link] = 'PutLatestLink'
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%'

注意:如果您直接在live server上执行此查询,请小心。这是第一次尝试使用上述查询仅更新一个特定报告,如果确实需要并且运行良好,则尝试更新其他报告。

很抱歉,这将不会更新数据源路径。这将更新报告路径。我想更新数据源路径:(是的,它不工作,因为它是共享数据源“WHERE dSource.flags=dSource.flags”有什么意义?您的报表服务器是否有web浏览器端?我有,但在数据库的浏览器端找不到任何内容。。。
UPDATE dSource set [Flags] = [Flags] | 2, [Link] = 'PutLatestLink'
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%'