Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Anyone know how I can copy the user reports (and model) someone has created to point at another database (same schema).

I don't really want to recreate the data model becuase (a) it's really complicated and (b) the previous developer added lots of friendly column names.

share|improve this question

2 Answers 2

Copying reports is pretty easy if you have the original RDL/SMDL files; simply redeploy/upload it again, and change its name/location/datasource.

If you don't have the original RDL/SMDL files, you'll need to extract these from the report server and redeploy. The easiest way to do this is via an rs.exe script.

The following describes how to copy reports from one server to another, but the same principles apply when copying reports etc. to the same server (from http://msdn.microsoft.com/en-us/library/ms159720.aspx):

You can write scripts that duplicate a report server environment on another report server instance. Deployment scripts are generally written in Visual Basic and then processed using the report server script host utility. The following list describes the steps for migrating reports from one server to another.

  1. Set your script variable to the URL of the source report server.
  2. Use the GetReportDefinition and GetProperties methods to retrieve the report definition and the properties of the report.
  3. Set the URL to point to the destination server.
  4. Use CreateReport method, passing the properties returned from GetProperties and the report definition returned by GetReportDefinition.

Once you've copied the reports, you can change the data source for the reports and the model (assuming you haven't done it programmatically via the RSS script):

  • In the Report Manager, click "Show Details" in the toolbar
  • Browse to the folder containing the object you wish to change (report or model)
  • Click its Properties
  • In the Data Source page, change the data source details to point to the new database (changing the credentials too, if needed)

If they're using a Shared Data Source, it'll be easier to leave them as they are and change the server it references, without touching the reports and model, so change the second point above to "Find the shared data source they reference"

share|improve this answer
    
Hi, I don't want to change the existing reports - they are to remain as they are - I want to create a copy which look at a different database. Thanks,Jim –  Jim Sep 22 '09 at 8:18
    
Edited to suit :) –  Jeremy Smyth Sep 22 '09 at 11:00

I wrote a tool to do the same. Maybe it will help you too.

Take a look at: http://code.google.com/p/reportsync/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.