unnamed
unnamed

Reputation: 856

Cannot attach 2008 R2 database to 2008 instance

So I have made a set up file and install it to target computer which has no .Net 4.0 or SQL Server 2008.

I add them as prerequisites and setup downloaded from the internet the .Net 4.0 and SQL Server 2008. The setup finished successfully.

When I run the program, it gives an exception:

cannot open xxxxxx.mdf file. it is version 650. and your is xxx...

I searched it out and learned that SQL Server installed on target computer is lower than the database file I created (the database file was created in SQL Server 2008 R2).

So, no connections can be opened.

To solve this, What can I do?

Thank you...

Upvotes: 0

Views: 954

Answers (2)

Steve
Steve

Reputation: 216303

There is no way to open an MDF file with a lower version of SQLServer.
Of course you could add as a prerequisite SQLServer 2008 R2 (express or full).
But the best course is to distribute a SQL Script containing schema and data.

This could be done using SqlServer Management Studio,

  • Right click on the database
  • Select Task
  • Select Generate Script.
  • Follow the Wizard.

In the last page of the wizard you could find the button Advanced
Clicking on it will give you full control on what to put inside the script.
The script could be distributed with your application with instructions on how to execute on the target machine.

Upvotes: 0

Aaron Bertrand
Aaron Bertrand

Reputation: 280350

You can't attach a 2008 R2 database to a 2008 instance - you can only go forward, not backward. So either install 2008 R2 at the destination, or you'll have to re-create your database in 2008. If you install 2008 locally alongside 2008 R2, you can create an empty database in 2008 and use tools like Red-Gate's SQL Compare / SQL Data Compare, or the schema compare feature in SQL Server Data Tools, to translate your database relatively quickly.

Upvotes: 2

Related Questions