I have received a fair amount of feedback and follow-up questions about my Extracting SSRS Report RDL (XML) from the ReportServer database blog post in which I show how you can simply get a Report’s (and other catalog items for that matter) XML out of the ReportServer.dbo.Catalog table.
Once you have extracted the catalog item as XML, you can then leverage SQL Server’s built-in support for the XML data type and XQuery to further parse the XML. At this point you need to have an understanding of the Reporting Services Report Definition Language XML Schema and a desire to extract specific pieces of information from a report definition.
Based on the requests I received in my previous blog posts comments, and my own use of these queries in real-world situations, I decided it might be helpful to create a sample SQL Server Management Studio (SSMS) project that contained example objects and queries that could be used to work with the SSRS Catalog contents.
To that end I have created a “SQL Server Reporting Services (SSRS) Catalog Queries” CodePlex Project (http://ssrscatalogqueries.codeplex.com/). I hope to expand the project in the future, but for now, the SSMS project includes the following scripts:
- "01 – Create the ReportQueries database.sql"
- "02 – Query Catalog Content.sql"
- "03 – Create the CatalogContent View.sql"
- "04 – Find all Data Set Commands.sql"
- "05 – Find all the Data Set Fields.sql"
- "06 – Determine Fields Actually Used.sql"
- "07 – Find all Connection Strings.sql"
- "08 – Extract Connection String Components.sql"
Grab the project and play with the scripts. If you don’t have the SQL Server 2008 R2 client installed, you won’t be able to SSMS project file (I created it using the SQL 2008 R2 version of SSMS), but you should still be able to open the .SQL script files directly in your current version of SSMS.
If you create a script that is useful, let me know and I will review it as a possible addition to the project. Of course, make sure to let me know if you use it, like it, hate it, or have questions or changes!