Wayne Snyder posted on September 27, 2010 14:24
Right now I am looking at rolling out SQL Server 2008R2 SSRS in a large enterprise and thinking about the developer's desktop software and how this will impact BIDS and Visual Studio. Since SQL Server Tools are shared across instances of the same version, AND since SQL 2008 and SQL 2008 R2 are the same version ( sort of) - they share the same tools - like BIDS. That means you can only have SQL 2008 BIDS OR SQL 2008 R2 BIDs on your machine - not both. So how will that affect us in the enterprise?
BIDS
Takeaway:
BIDs can deploy SQL 2008 and R2 reports
BIDs can preview SQL 2008 and R2 reports
BIDs will attempt to upgrade SQL 2005 reports when imported.
Details:
The functionality of SSRS has changed between 2008 and R2. For instance maps, sparklines, and bar graphs have been added. Also the ability to deploy and share data sets, and report parts are support. BIDs for R2 needs to be able to deploy reports to both 2008 and R2. This is done by adding information to the report project configuration. TargetServerVersion is added to tell BIDs if your SSRS version is SQL 2008 or R2. Location information for shared data sets and report parts are also added to the project file(.rptproj).
Here is an example of a part of the project file for SQL 2008 R2 SSRS project. I have bolded some of the new stuff in the project file.
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ToolsVersion="2.0">
<State>$base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTg==</State>
<DataSources />
<DataSets />
<Reports>
<ProjectItem>
<Name>Report1.rdl</Name>
<FullPath>Report1.rdl</FullPath>
</ProjectItem>
</Reports>
<Configurations>
<Configuration>
<Name>Debug</Name>
<Platform>Win32</Platform>
<Options>
<OutputPath>bin\Debug</OutputPath>
<TargetServerVersion>SSRS2008R2</TargetServerVersion>
<TargetFolder>TiffTest</TargetFolder>
<TargetDataSourceFolder>Data Sources</TargetDataSourceFolder>
<TargetDatasetFolder>Datasets</TargetDatasetFolder>
<TargetReportPartFolder>Report Parts</TargetReportPartFolder>
</Options>
</Configuration>
<Configuration>
<Name>DebugLocal</Name>
<Platform>Win32</Platform>
<Options>
Technet says (http://technet.microsoft.com/en-us/library/ee635898.aspx) and below:
Important |
|
If you save a SQL Server 2008 Report Server project in the SQL Server 2008 R2 version Business Intelligence Development Studio you can no longer open it in the SQL Server 2008 version of Business Intelligence Development Studio.
|
I did some testing on this. It turns out that SQL 2008 allows you to open the R2 project, and simply ignores the tags it does not understand. You can save an existing report and be fine. But if you do anything which causes a change in the project file, like adding a new report or changing the configuration parameters, a save will remove the R2 specific project items. You can still open the package in R2, and you will be asked if you wish to upgrade. Then you will have to re-setup the configuration information.
Reports
Takeaway:
Reports can be deployed to SQL 2008 or R2, but unsupported features will be stripped away.
Details:
BIDs for R2 can deploy reports for SQL 2008 and R2, but not SQL 2005. You can set up mulitple configurations, as before and for each configuration specify which environment. If you put R2 only features into a report and attempt to deploy it to SQL 2008, those features will be stripped out. So, for instance, a map will be removed from a report when you try to deploy to SQL 2008. This happens during a build phase of deployment. A result is returned - ErrorLevel. Valid values are below. Note they go from most to least severe.
|
Error level
|
Description
|
|
0
|
Most severe and unavoidable build issues that prevent preview and deployment of reports.
|
|
1
|
Severe build issues that change the report layout drastically.
|
|
2
|
Less severe build issues that change report layout insignificantly.
|
|
3
|
Minor build issues that change the report layout in minor ways that might not be noticeable.
|
|
4
|
Used only for publishing warnings
|
You can set the ErrorLevel in a project configuration, as below:

Any error with a value <= ErrorLevel in the configuration are considered an error and will kill the deployment. Otherwise, it is considered a warning and the build continues. 2 seems to be the default.
This project indicates the target to be R2. We could change this to be SQL 2008. Changing it does NOT change the RDL files for the reports. This conversion will occur for the deployment, and not the source.
I created a simple report with a map and an image, using R2 as the target. After the build, both the source and the OutputPath were the same. Then I changed the target to SQL 2008, and did another build. The error below was returned.
Error 1 The map, Map1, was detected in the report. SQL Server 2008 Reporting Services does not support map report items. Either reduce the error level to a value less than 2 or change the ReportServerTargetVersion to a version that supports map report items. C:\Documents and Settings\wsnyder\My Documents\Visual Studio 2008\Projects\TiffTest\TiffTest\Report1.rdl 0 0
After changing the ErrorLevel in the project to 0, I did another build. The source RDL was unchanged, but the copy in OutputPath had the Map stripped from it.