我有数百个报告在MSSQL报告服务器中部署。其中很少有报告嵌入了数据源,其余的报告共享了数据源。是否有任何查询或简单的方法可以区分共享和嵌入数据源的报告?
您可以使用以下查询:
WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition')
SELECT C.Name,
CONVERT(XML,CONVERT(VARBINARY(MAX),C.Content)).exist('/Report/DataSources/DataSource/ConnectionProperties') AS EmbeddedSourcePresent,
CONVERT(XML,CONVERT(VARBINARY(MAX),C.Content)).exist('/Report/DataSources/DataSource/DataSourceReference') AS SharedSourcePresent
FROM ReportServer.dbo.Catalog C
WHERE C.Content is not null
AND C.Type = 2
您可能需要根据SSRS版本更改命名空间。我希望这会有所帮助。