2014-01-05 72 views
0

我有兩個名爲.mdf.ldf的數據庫文件,它們是在SQL Server 2012中創建的,現在在我的電腦上安裝了Visual Studio 2010和SQL Server 2008 Express 。如何在SQL Server 2012中創建的SQL Server 2008中附加數據庫

當我嘗試將這些數據庫文件附加到SQL Server 2008時,它給我錯誤。

The database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. Could not open new database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'. CREATE DATABASE is aborted.
An attempt to attach an auto-named database for file C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

當打開數據庫SSMS中2008年則錯誤:

Attach database failed for Server 'MATRIX-PC\SQLEXPRESS'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
The database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\ COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF' cannot be opened because it is version 706.
This server supports version 655 and earlier. A downgrade path is not supported.
Could not open new database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF'. CREATE DATABASE is aborted.
(Microsoft SQL Server, Error: 948)

+0

你**不能**這樣做 - 你**不能**附加/分離或備份/從**更新的**版本的SQL Server恢復到**更舊的**版本。只是**不能**完成。 –

+0

真的,沒有辦法解決這個問題。如果有的話,然後指導我。 – argciv

+0

解決方案是在所有平臺上使用**相同版本的SQL Server;爲什麼不直接在本地PC上下載並安裝SQL Server ** 2012 ** Express? –

回答

0

不行,你只能往前走。

這意味着,您可以將數據庫從2005或2008還原到2012版本,但不能以相反順序執行。我收到的下一個最受歡迎的問題是,如果我們無法將SQL Server 2012數據庫恢復到早期版本,那麼下一個最佳選擇是什麼?

我曾經親自面對過這個問題,並且我已經在SQL Server 2012中使用腳本和數據生成器嚮導手動創建了T-SQL腳本,並在 SQL Server 2008R2中重建了我的數據庫。如果您有許多不同的數據庫需要解決,您可以使用SSIS到 自動生成腳本。

+0

視頻在哪裏? – argciv

0

如您想從2008年訪問2012年的數據庫一樣,您必須將數據庫遷移回2008年。這隻有在數據庫中沒有使用2012特定功能的情況下才有可能。如果您已經並且仍然想執行遷移,那麼您應該先嚐試確定它們發生的位置並首先解決它們。

如上所述,一個選項是生成T-SQL腳本並使用它們在2008年重新生成數據庫。但是對於大型數據庫來說,這可能會耗費時間並且難以實際工作。

比使用SSMS腳本嚮導更好的選擇是使用Codeplex上提供的名爲SQL數據庫遷移向導的類似工具 - http://sqlazuremw.codeplex.com/releases/view/32334。您希望最新版本v4.x與SQL Server 2012配合使用。

該工具最初旨在用於在SQL Server和Azure之間遷移數據庫。但是,該工具在SQL Server 2012和SQL Server 2008之間也可以正常工作。技巧是將SQL Server而不是Azure設置爲高級選項中的目標。

這比SSMS腳本嚮導更好的選擇是,它使用BCP進行數據傳輸而不是TSQL,因此效率更高。我在大約2個小時內遷移了一個7GB的數據庫,大部分時間花在機器工作時喝茶。重要的是,這一切都只是工作,沒有要求我開始編輯文件來解決像太多的命令,超時等問題

相關問題