Как указать ВСЕ развернутые отчеты SSRS на другой общий источник данных на сервере отчетов?

У меня есть более сотни развернутых отчетов на сервере отчетов, которые в основном используют один и тот же общий источник данных. Теперь мне нужно перенаправить их все на другой источник данных.

Поэтому я вручную просматриваю каждый отчет на сервере отчетов и указываю его на другой общий источник данных.

Есть ли способ сделать это для всех отчетов сразу?

введите здесь описание изображения


person Serdia    schedule 20.11.2020    source источник
comment
Конечно, смысл общего источника данных в том, что вы просто обновляете сам источник данных?   -  person Dale K    schedule 20.11.2020
comment
Я не уверен, что использую лучшие практики, но когда я развертываю отчет на сервере, я указываю его на общий источник данных в папке Datasources. Так что да, мы добавили базу данных отчетов, поэтому мне нужно перенаправить ее на нее.   -  person Serdia    schedule 20.11.2020


Ответы (1)


Это не полный ответ, но я думаю, что он указывает вам направление, которое может вас разблокировать:

Я бы проверил базу данных ReportServer. Я думаю, что есть 2 соответствующие таблицы. [Источник данных] и

SELECT SDS.name AS SharedDsName 
       ,SDS.[Path] 
       ,CONVERT(xml, CONVERT(varbinary(max), content)) AS DEF 
 FROM dbo.[Catalog] AS SDS 
 WHERE SDS.Type = 5

Я нашел здесь отличный запрос, намекающий на это: https://gallery.technet.microsoft.com/scriptcenter/List-connection-strings-of-1a9a9adc

Этот запрос:

-- List connection strings of all SSRS Shared Datasources 
;WITH XMLNAMESPACES  -- XML namespace def must be the first in with clause. 
    (DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2006/03/reportdatasource' 
            ,'http://schemas.microsoft.com/SQLServer/reporting/reportdesigner' 
     AS rd) 
,SDS AS 
    (SELECT SDS.name AS SharedDsName 
           ,SDS.[Path] 
           ,CONVERT(xml, CONVERT(varbinary(max), content)) AS DEF 
     FROM dbo.[Catalog] AS SDS 
     WHERE SDS.Type = 5)     -- 5 = Shared Datasource 
 
SELECT CON.[Path] 
      ,CON.SharedDsName 
      ,CON.ConnString 
FROM 
    (SELECT SDS.[Path] 
           ,SDS.SharedDsName 
           ,DSN.value('ConnectString[1]', 'varchar(150)') AS ConnString 
     FROM SDS 
          CROSS APPLY  
          SDS.DEF.nodes('/DataSourceDefinition') AS R(DSN) 
     ) AS CON 
-- Optional filter: 
-- WHERE CON.ConnString LIKE '%Initial Catalog%=%TFS%' 
ORDER BY CON.[Path] 
        ,CON.SharedDsName;
person Jesse    schedule 20.11.2020