SQL Server Reporting Services

Create repository reports

Downloads
95745.zip

Microsoft SQL Server Integration Services (SSIS) lets you create and populate a central repository of Microsoft SQL Server 2005 information. --Microsoft SQL Server Reporting Services (SSRS) lets you tap into that repository data and deliver customized reports to Microsoft SQL Server 2005 database administrators (DBAs) and information technology (IT) staff. --Microsoft SQL Server Reporting Services (SSRS) provides all the features necessary to build a full reporting solution that lets Microsoft SQL Server 2005 database administrators (DBAs) and information technology (IT) staff quickly access status.

To use a report parameter to filter the data displayed on the reports, you must first create a data set to populate the parameter values and labels. The data set will use the common technique of passing a NULL value in addition to the list of server names. Next, you need to create the report parameter that uses this data set, allowing NULL values in the Report Parameter properties. Finally, use custom expressions in the report filter to display all servers or just one server.

Listing 2 contains the query that will create the data set for the Server List report parameter. The Union statement will pass not only the distinct server names but also the literal string "Select All," which will be associated with the NULL value. In addition, the Order by clause is necessary to force the words "Select All" to show at the top of the drop-down list.

Figure 4 shows the report parameter properties. This figure shows the options that are needed to populate the drop-down list for the Server List parameter. Note that the Allow null value checkbox is selected and that the values are derived from a data set, called Server_List_Parameter, which comes from the query in Listing 1. Also, the default value is set to NULL. As an added benefit, you don't need to enter a selection before the report will run—the report will automatically run with all servers as the value passed.

Next, you must tie the parameter value to a filter value to show or exclude data on the report. As I explained previously, the selection is one server or all servers. Figure 5 shows the filter, which is in the report's table properties. The filter uses the Iif statement for the If/Then/Else logic. The logic says that if the parameter value is NULL or Nothing, the value is 1; otherwise it's the value of the parameter and field respectively. When the parameter choices force the logic to evaluate 1=1, show all servers; otherwise show only the server that matches the value of the selected parameter and the field value of the report data.

An interesting design aspect of this report is the use of the Switch function for color-coding the Last Run status column. Although you can use a series of nested Iif functions rather than the Switch function to color-code this column, using Iif is problematic for any value comparisons over 2. Figure 6 shows the Switch function as an expression for the background color property in the Last Run column.

Report #3: Modified Jobs
The final report, Modified Jobs, is a straightforward modification to the existing Server Jobs report. Companies that don't have an effective change management solution (and many that do) sometimes find undocumented code or job changes that don't work as expected, or that fail. Although finding the exact source of an undocumented change can be difficult, simply knowing that a change occurred at least gives the DBA a starting point for further investigation.

The Modified Jobs report shows all the jobs that have incurred a change in the past n days. Instead of tying a report parameter to a filter in this case, I tied the report parameter to a query parameter to limit the data. This method limits the actual number of rows that are delivered to the report from the source database and should therefore increase performance. Figure 7 shows the report and the drop-down list for the number of days in the past to look for modified jobs.

Listing 3 contains the query that returns the data for the report, which is also tied to the Last Day report parameters. Note the use of the query parameter @Last_Day in the query's WHERE clause. When the report runs, the report parameter Parameters!Last_Day.Value will pass to the query as an integer value for the WHERE clause to evaluate the job's modified data and the Package Run date. The Package Run date is the date on which the SSIS repository package ran.

A final note about the Modified Jobs report is that it uses the report parameter value in the report header textbox with the following expression:

="Modified Jobs in the Last " &
  Parameters!Last_Day.Value & "
  Days"

This expression gives the report a dynamic header by combining the literal string "Modified Jobs in the Last...Days" with the variable parameter Last_Day value for the number of days selected.

After the reports are complete, you can publish them to the SSRS Web front end. Assuming that the TargetServerURL location is set up in the project's properties, you can simply right-click the reports in BIDS Solution Explorer and select Deploy.

SSIS + SSRS = KISS
Last month, I explained how to use SSIS to populate a repository database. In this article, I show you how to use SSRS to create three customized reports. Combining the features of SSIS and SSRS lets DBAs create quality reports that are simple to use and that provide the day-to-day information DBAs need to do their jobs. The reporting solution that I outline is both inexpensive and fully customizable—two attributes that don't always go hand in hand.

Discuss this Article 5

WJRinky
on Jun 28, 2007
Cool article and use of the SSRS tools
whitehs
on Jul 23, 2007
This article along with 95385 were great in allowing me to automate some reports to give quick view of what's happening on our servers. Cheers
reachmak
on Aug 4, 2008
Great article
hughesg4
on Feb 14, 2008
excellent!
AnneG_editor
on Jul 25, 2007
Thanks for your feedback! I'll pass it along to Rodney. Let us know what other topics you'd like to see covered in SQL Server Magazine! Anne Grubb, Web Lead Editor, SQL Server Magazine and Windows IT Pro, agrubb@windowsitpro.com

Please or Register to post comments.

IT/Dev Connections

Las Vegas
September 30th - October 4th

Paul ThurottOur Experts will show you:
• Common SQL Server
Problems
• Best Practices for T-SQL
• SQL Server Integration
Services
• Database Development

Come See Michael Otey & Tim Ford in Person!

Early Registration Now Open

From the Blogs
May 21, 2013
blog

A Common Misconception about MAXDOP

Out of the box, SQL Server is (and has been) able to take advantage of multiple processors/cores without any effort on behalf of administrators....More
May 9, 2013
blog

My ISO 8601-Compliant Signature 2

My family recently just "officially" announced that we're in the process of adopting a child from South Africa. We're quite excited, of course, but there's a ton of paperwork to do—along with the need for gobs of signatures....More
May 8, 2013
blog

Use SSIS for ETL from Hadoop

In this blog post, Mark Kromer walks you through using SSIS as a way to use ETL techniques using Microsoft's Hadoop on Windows (HDInsight) as a source using Hive connectors...More
SQL Server Pro Forums

Get answers to questions, share tips, and engage with the SQL Server community in our Forums.