In Unternehmensumgebungen ist das Management von Berichten und Datenquellen eine wesentliche Aufgabe, um die Integrität und Verfügbarkeit von Unternehmensdaten sicherzustellen. Insbesondere die Nachverfolgung, welche Berichte auf bestimmte Datenquellen zugreifen, ist entscheidend, vor allem wenn Änderungen an diesen Datenquellen vorgenommen werden. In solchen Szenarien ist es notwendig, alle abhängigen Berichte zu identifizieren, um sie entsprechend zu aktualisieren oder zu testen. Dieser Artikel erläutert, wie man SQL-Abfragen nutzen kann, um solche Abhängigkeiten in einer SQL Server Reporting Services (SSRS) Umgebung effizient zu ermitteln.
Die vorgestellte SQL-Abfrage ist ein leistungsfähiges Werkzeug, um die Abhängigkeiten zwischen Berichten und Datenquellen direkt aus der ReportServer-Datenbank des SQL Servers zu extrahieren. Diese Abfrage liefert drei wichtige Informationen: den Namen der Datenquelle (Data_Source_Name
), den Namen des abhängigen Elements (meist Berichte, Dependent_Item_Name
) und den Pfad des abhängigen Elements im Report Server (Dependent_Item_Path
). Die Abfrage nutzt mehrere JOIN-Operationen auf der DataSource
– und Catalog
-Tabelle der ReportServer
-Datenbank, um die gewünschten Informationen zu extrahieren.
In diesem Beispiel suche ich alle Elemente die im Namen %DWFa% haben.
SELECT
C2.Name AS Data_Source_Name,
C.Name AS Dependent_Item_Name,
C.Path AS Dependent_Item_Path
FROM
ReportServer.dbo.DataSource AS DS
INNER JOIN
ReportServer.dbo.Catalog AS C
ON
DS.ItemID = C.ItemID
AND
DS.Link IN (SELECT ItemID FROM ReportServer.dbo.Catalog
WHERE Type = 5) --Type 5 identifies data sources
FULL OUTER JOIN
ReportServer.dbo.Catalog C2
ON
DS.Link = C2.ItemID
WHERE
C2.Type = 5
AND C2.Name like '%DWFa%'
ORDER BY
C.Path,
C2.Name ASC,
C.Name ASC;
Ermittlung aller Berichte ohne zugeordnete Datenquelle:
SELECT C.Name, C.Path
FROM ReportServer.dbo.Catalog AS C
LEFT JOIN ReportServer.dbo.DataSource AS DS ON C.ItemID = DS.ItemID
WHERE DS.ItemID IS NULL AND C.Type = 2
ORDER BY C.Name;
Natürlich können wir auch manuell im Reporting-Portal unter „Stamm -> Datenquellen -> Unsere Datenquelle“ unter Abhängige Elemente alle Reports anzeigen lassen, die von dieser Quelle abhängig sind.
Be the first to comment