只要附上它,它就会升级。如果你没有LDF文件(?为什么你不具备LDF文件),您可能需要使用:
CREATE DATABASE [DatabaseName] ON
(FILENAME = N'Drive:\path\file.mdf')
FOR ATTACH_REBUILD_LOG;
有一些注意事项,当然...
- 因为只有.mdf文件,所以你可能会在一个粗鲁的觉醒中。如果文件与SQL Server不完全分离,则可能无法重新附加,并且您将不得不返回到源服务器以获取正确的备份(不是.mdf文件)。这一切都取决于你试图升级的.mdf文件的位置。如果您的.mdf文件未正常脱落,你可能会得到这样的错误:
File activation failure. The physical file name "..._log.LDF" may be incorrect.
The log cannot be rebuilt because the database was not cleanly shut down.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted.
- 如果你的数据库是80兼容模式,将升级为90。这可能意味着一些工作的代码可能突然中断,如
*=
/=*
加入语法。
- 如果你的数据库大于10GB并且你尝试连接到Express(也可能是LocalDB,从来没有尝试过),那么连接将会失败(或者连接成功,但是在第一次自动增长时会失败?还没有测试过) 。
- 如果您的数据库是在2008 Enterprise/Developer上创建的,并且您仅使用了可用的功能,并且您将该数据库附加到Standard或Express版本,那么您也会遇到问题...
- 可以从错误消息根本没有试图附加一个2008数据库,而是试图附加一个2000数据库。您不能直接将其添加到SQL Server 2012.您将首先需要将其附加到SQL Server 2005,2008或2008 R2的任何实例以将其升级到该版本,然后将其备份并将其还原到SQL Server 2012.
FWIW,移动从一个实例到另一个数据库的很多很多,更安全的方法是使用BACKUP
/RESTORE
(原因是,如果你的备份失败,你仍然有数据库的副本 - 如果你分离数据库,出现问题,你有零份)。虽然上述一些问题可能仍然适用于这种更安全的方法。
你不需要转换它。直接在SQL Server 2012上恢复它。 – 2013-03-01 17:56:11
感谢您的时间,但我有下一个错误:数据库'销售'无法升级,因为它的非发行版本(539)不受此版本的SQL Server支持。您无法打开与此版本的sqlservr.exe不兼容的数据库。您必须重新创建数据库。 无法打开新的数据库'销售'。 CREATE DATABASE被中止。 (Microsoft SQL Server,错误:950)..................老实说,我发现了几个解决方案,但没有成功 – Andreu 2013-03-01 18:16:30
请查看我的答案更新。你知道SQL Server 2000和SQL Server 2008之间有很大的区别。没有准确地描述你的问题是一个很好的方法来得到一堆无用的建议,并浪费了人们在这个过程中的时间。 – 2013-03-01 18:42:05