我一直试图找出使用特定数据库表的内容(如果有的话),所以我可以更新它
我找到了一个访问此表的存储过程,SSRS实例使用该存储过程来获取共享数据集。我有一份SSRS解决方案,当我在VS2008中打开它时,我可以看到数据集。此解决方案中还有18个报告。当我右键单击并在任何共享数据集上选择find usages
时,它只会显示"Usages of blah.rsd was not found"
我可以单独打开每个报告并检查每个报告上的数据集,看它们是否与共享数据集匹配,但这看起来很荒谬。
当然,有一种更简单的方法可以找到共享日期集的用法吗?
答案 0 :(得分:2)
下面的查询显示同一项目中的所有报告并使用共享数据集。有关type
中Catalog
列的说明,请参阅msdn论坛中的link,他们也无需提及直接查询数据库...
select c.Name as ReportName, c.Path
from Catalog c
join DataSets ds on c.ItemID = ds.ItemID --all reports datasets (including those created from shared datasets)
join Catalog c2 on ds.LinkID = c2.ItemID and c2.Type = 8 --all shared datasets
join Catalog c3 on c.ParentID = c3.ItemID --the project dataset object
join Catalog c4 on c3.ParentID = c4.ItemID --the project object
where c2.Name = 'MySharedDatasetName' and c4.Name = 'MyProjectName'
感谢s_f带领我朝着正确的方向前进!
答案 1 :(得分:1)
您可以在ReportServer DB上运行此查询:
select c.Name, c.Path
from dbo.DataSets ds
inner join dbo.Catalog c
on ds.ItemID = c.ItemID
where ds.Name like 'yoursDSname'