Can you import (or migrate) SQL Server 2005 databases to SQL Server 2008?
Is it possible to have the same 2005 and 2008 running on the same machine without complications?
Yes. You can restore a backup from SQL 2005 in SQL 2008. You can also have instances of both on the same machine.
Edit: This question has been asked before (more or less). See here
Yes, and Yes.
The fastest way to move from one to the other that I have found is just to do a backup from SQL 2005 and a restore to SQL 2008.
I have both running side-by-side on my dev box without issue.
Related
A database that was originally from SQL Server 2008, was restored into SQL Server 2012. A backup from SQL Server 2012 was made and I am trying to restore it on my local SQL Server 2008 Express. However I get an error 'Specified cast is not valid' (SQLManagerUI).
I have generated an SQL Script from 2012 and set it so that it will generate with compatibility to SQL Server 2008. However it is a large sql file, around 700mb.
I recall before that I had tried to run a script of that size before on my local SQLExpress and also got an error.
Is there a way I can get a "large" database from SQL Server 2012 into SQL Server 2008 Express?
Thanks to Marc and Aaron for providing the answers.
The quick answer is no, it's not possible to restore a backup file from a higher version to a lower version of SQL Server.
A work around would be to generate the scripts to create the database.
You can target the script generation to a lower version.
Please see comments above for more information.
Links:
Why an SQL Server Database from a higher version cannot be restored onto a lower version of SQL Server?
Create Database in SQL Server 2012, Script and Use in 2008?
Couple things to add that might be helpful to folks
When scripting large databases using scripting wizard in SSMS it’s really important to check the execution order and be willing to re arrange it manually. Older versions of SSMS had this problem because they (probably) relied on sp_depends that has a bug.
What I’ve found really useful in such cases are tools like ApexSQL Diff that you can use to read database backups and generate scripts that are in correct execution order.
SQL Server database backup restore on lower version
One thing that none of the methods will catch is the thing Aaron mentioned about using functions specific to higher version.
A better option than using the SSMS scripting wizard is to use a similar tool available on Codeplex called SQL Database Migration Wizard - http://sqlazuremw.codeplex.com/releases/view/32334. You want the latest version v4.x to work with SQL Server 2012.
The tool is originally intended to be used for migrating databases between SQL Server and Azure. However the tool works just as well as between SQL Server and SQL Server. The trick is to set SQL Server rather than Azure as the target in the advanced options.
The reason this is a better option than the SSMS scripting wizard is that it uses BCP for the data transfer rather than TSQL and so is much more efficient.
I have a database created on a box using SQL Server 2008 Express and am developing a website between that and another box (set up by a friend a while back) using 2008 R2. Unfortunately, I've hit two problems.
The first is that on the R2 box, while it will load in the database from 2008, it won't allow me to add tables (it gives the well worn and completely useless Specified module cannot be found HRESULT: 0x8007007E) - I can do everything else but add tables.
The second is that when the file is accessed and updated to SVN, the other box cannot use it as the version numbers differ (655 [2008 Express] on one 661 on the other with no downgrade path). Grrr!
My plan is to do this - copy the SQL file on the 2008 R2 box to an SQL script. Remove R2 from the machine completely and just do a default install of 2008 and reimport the script. Only problem is that I'm clueless on how to do it.
Can anyone recommend a piece of kit that will do this or point me in the direction of a website that may help? Google produces masses of hits, but doesn't always help on this one.
Thanks
Paul
From your description, it appears that you've got SQL Express 2008, not SQL Express 2008 R2;
Have you considered upgrading the SQL Express to SQL Express 2008 R2 http://www.microsoft.com/download/en/details.aspx?id=23650
SQL Express isn't a version, but is just an Edition. It might be easier to upgrade the SQL Express 2008 to SQL Express 2008 R2.
But... this is probably what you are looking for if you are set on exporting the database to a script.
http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-stored-procedure-functions-triggers-tables-views-constraints-and-all-other-database-objects/
I have a database currently in SQL Server 2008 to be moved to SQL Server 2005. I would like to backup the 2008 db to a bak file and import it to 2005, but couldn't find any options in SSMS 2008 while taking backup. Has anyone had a similar need in the past? How did you manage this through?
To restore the backup to an older version of SQL Server you can use third party tools, ApexSQL Diff and ApexSQL Data Diff.
You can read detailed explanation of the process in this article: Restoring SQL Server database backup to an older version of SQL Server
Hope this helps
Disclaimer: I work for ApexSQL as a Support Engineer
You could try the Publish Database Wizard.
From the link:
The source database must be on an instance of SQL Server 2005, SQL Server 2005 Express Edition, or SQL Server 2008. The target database must be on an instance of SQL Server 2000, SQL Server 2005, SQL Server 2005 Express Edition, or SQL Server 2008.
I don't think you can restore 2008 backup on 2005 server. Try 3rd party schema/data migration tool, like SQL Examiner Suite or RedGate's SQL Compare
You cannot do this. You never could restore a more recent SQL Server database to an older version.
Your only option is to script out the data you need to insert, or use a data comparison tool like Red-Gate SQL Data Compare to compare the two databases (and update your older one from the newer). SQL Data Compare will also work comparing a backup (any version) to a live database on a server.
It's easier than that, since (assuming your db isn't using any 2008-only features) they use the same format (*.mdf). Simply detach your database from your 2008 server, copy the mdf file to the 2005 server, and attach the copy to the 2005 server. Look for the Attach/Detach option when you right click on a database in sql server management studio.
I have 4 SQL Server 2005 db's that I want to move to SQL CE. I know I cannot keep the SProcs,Views, and Functions(Differences Between SQL Server Compact and SQL Server) but I would like to keep everything else.
I have tried this app, SQL Server to SQL Server Compact Edition Database Copy but it errors out on me. I have the source and am looking into it but I thought I'd check and make sure I wasn't over complicating the solution to my ACTUAL goal.
Is there a simple, can be one shot, way of converting standard SQL .mdf to SQL CE .sdf?
Right now my best idea is to set up Replication to the SQL CE from the SQL 2005 Standard.
http://erikej.blogspot.com/2010/02/how-to-use-exportsqlce-to-migrate-from.html
1.Use SQL Server to SQL Server Compact Edition Database Copy with sqlcompact 3.1 or 3.0 not sql compact 3.5
You can use a virtual machine like sun virtual box, install sql compact 3 or 3.1 on it, and convert your database inside it
2.You can convert to sql compact manually
Use the SDFViewer utility:
go Tools Menu > From SQL Server
Enough said....
What if you scripted the objects from 2005 and ran the script in CE? That'd give you the structure of the DB, then you could select/insert?
I haven't tried this, but what about SQL's DB export/import tools in management studio?
I have an existing application that transfers a Database from a source server to a target server via SMO "Transfer". We transfer only the data.
Both SQL-Servers are 2005.
Now we upgrade the target server to SQL-Server 2008. Will the transfer via SMO still work?
yes. they should. SMO hasn't really changed between version.
This didn't work out of the box. I had to use the SMO-dll of SQL Server 2008. They have slightly different names.
It was not necessary to change code.
My databases where set to use SQLServer 2005 compatibility mode. I had to change them to native SQLServer 2008 mode.