私は、Reporting Services のテーブルをハッキングすることに非常に、非常に、非常に慎重です。誰かがあなたが提案したことを実行するための信頼できる方法を提供できるかもしれませんが、インストール全体を破壊する良い方法だと私は思います.
私の提案は、Reporting Services API を利用して、これを行うための小さなアプリを作成することです。API は非常にフル機能であり、Report Manager Web サイトから実行できるほとんどすべてのことを API で実行でき、使い方も非常に簡単です。
次のコードは、レポートを共有データ ソースにポイントするという目的を正確に果たすものではありませんが、実行する必要がある基本事項を示しているはずです。
public void ReassignDataSources()
{
using (ReportingService2005 client = new ReportingService2005)
{
var reports = client.ListChildren(FolderName, true).Where(ci => ci.Type == ItemTypeEnum.Report);
foreach (var report in reports)
{
SetServerDataSource(client, report.Path);
}
}
}
private void SetServerDataSource(ReportingService2005 client, string reportPath)
{
var itemSources = client.GetItemDataSources(reportPath);
if (itemSources.Any())
client.SetItemDataSources(
reportPath,
new DataSource[] {
new DataSource() {
Item = CreateServerDataSourceReference(),
Name = itemSources.First().Name
}
});
}
private DataSourceDefinitionOrReference CreateServerDataSourceReference()
{
return new DataSourceReference() { Reference = _DataSourcePath };
}