Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

An ideal book and eBook for trainers who want to teach an introductory course in SQL Server Integration Services or, to those who want to study and learn SSIS in a little over two weeks.

(For more resources on Microsoft, see here.)

Introduction

There are several options if one wishes to move a database from a SQL Server 2005 to SQL 2008 Server. First of all there is a 'Copy Database Wizard' in SQL 2008 Server which is meant for transferring a database from any version of SQL Server 2000 and above to 2008 version. This Wizard can operate in two ways. In the first option it can attach a database (even one on the network) and uses the SQL 2008 SQL Server agent. The Copying of the database is implemented by an Integration Services package to run as a SQL Server Agent job that is scheduled to run immediately or according to some configurable schedule. This will therefore depend on correctly configuring the SQL Server Agent. In order to use the attach / detach process, the remote server will be stopped and if the database / log files are on a shared drive they are correctly brought in by the wizard. In the other option the database will be copied using the SQL Server Management Program for which the source database need not be stopped. However this is slower than the previous method and would also require the SQL Server Agent since a package has to be run.

An option which works without too much hassles is manually detaching and attaching the database/log files. In this step-by-step (really two steps) tutorial, this simple procedure is described. If you are just interested in taking a small database from 2005 to 2008 server the author strongly recommends this procedure.

Interested readers may also want to read my other popular article Moving Data from SQL Server 2000 to SQL Server 2005

Step 1: Detaching the Database

Highlight the database you want to transfer in the Databases node in the SQL Server Management Studio as shown in the next figure. Right click this database as shown and click on Detach... Make sure the database is running (notice the green arrow for HodentekSQL Express which is a junior version of SQL 2005).

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

This brings up the Detach Database window as shown. Place a check mark for 'Drop' as shown and click on OK. This removes the 'Pubs' node from the Databases folder in the SQL Server Management Studio (You may need to attach it again). With this accomplished you can physically move the files or do what you want with them.

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Step 2: Copy the DATA / LOG Files

Copy the pubs.mdf and pubs.ldf files to a location on the C: drive of the machine on which SQL 2008 Server is installed.

(For more resources on Microsoft, see here.)

Step 3: Attaching the Database

In the SQL Server Management Studio, right click the databases node and choose Attach... pick list item as shown in the following figure.

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

This pops-up the Attach Databases window as shown in the next figure.

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Click on the Add button. This brings up a Locate Database Files folder / file browser window. Locate the files you placed in Step 2. In this tutorial example, the files were placed in the location shown in the next figure.

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Click open the folder which contains the DATA /LOG files and highlight the MDF file. Now click on the OK button. This brings in the file information into the Attach Databases window. Although you just chose the MDF file, the LDF file is automatically brought in as well.

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Now click on the OK button in the Attach Databases window. Within a few seconds the pubs database appears in the databases folder of the SQL 2008 server. Expand the pubs node and verify the objects as shown in the next figure.

(For more resources on Microsoft, see here.)

Some Transferred Objects

Some of the objects copied over are shown in the next paragraphs. The figures show only portions of their contents.

Tables

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Stored Procedures

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Users

Moving a Database from SQL Server 2005 to SQL Server 2008 in Three Steps

Summary

The simple procedure outlined in this tutorial is adequate if you need to transfer databases from MS SQL Server 2005 to MS SQL Server 2008. If you need to selectively transfer logins, or choose objects to transfer perhaps the Copy Database Wizard may be better suited. In order to use the wizard you have to understand the security features well and be able to create an appropriate SQL Server Agent proxy. This will be described in detail in a future article at this site.


Further resources on this subject:


Books to Consider

Microsoft SQL Server 2008 R2 Administration Cookbook
$ 32.99
What's New in SQL Server 2012
$ 20.99
Getting Started with SQL Server 2014 Administration
$ 16.99
Microsoft SQL Server 2012 Integration Services: An Expert Cookbook
$ 26.99
comments powered by Disqus