使用SQL2012附加一个数据库时报出了以下错误:“无法升级数据库....因为此版本的 SQL Server 不支持该数据库的非发布版本(539)。不能打开与此版本的 sqlserver.exe 不兼容的数据库。必须重新创建该数据库。”
详细截图如下:
经过检索得知:原来539 是Sql Server2000数据库的内部版本号,也就是说要附加的数据库文件是由Sql Server 2000创建的,但是我们知道Sql Server 2012 数据库是不兼容Sql Server 2000数据库的。如下图所示:
原来要附加的数据库是Sql Server 2000创建的数据库,故出现了以上的错误情况。此时便有了针对性的解决办法:Sql Server 2000数据库->(先附加到)Sql Server 2005/2008(可在另一台机子上完成或本机安装虚拟机,虚拟机上安装Sql Server 2005/2008)->然后分离数据库,拷贝到目标文件夹再附加到Sql Server 2012上。
以下是查询到的Sql Server2012以前的微软所有 Sql Server数据库的内部版本号列表: (Sql Server2012数据库的内部版本号为 706)
Target SQL Server Version |
Source SQL Server Version |
Internal Database Version |
SQL Server 2008 R2 |
SQL Server 2008 R2 |
665 |
SQL Server 2008 |
661 |
|
SQL Server 2005 with vardecimal enabled |
612 |
|
SQL Server 2005 |
611 |
|
SQL Server 2000 |
539 |
|
SQL Server 2008 |
SQL Server 2008 |
661 |
SQL Server 2005 with vardecimal enabled |
612 |
|
SQL Server 2005 |
611 |
|
SQL Server 2000 |
539 |
|
SQL Server 2005 SP2+ |
SQL Server 2005 with vardecimal enabled |
612 |
SQL Server 2005 |
611 |
|
SQL Server 2000 |
539 |
|
SQL Server 7 |
515 |
|
SQL Server 2005 |
SQL Server 2005 |
611 |
SQL Server 2000 |
539 |
|
SQL Server 7 |
515 |
|
SQL Server 2000 |
SQL Server 2000 |
539 |
SQL Server 7 |
515 |
|
SQL Server 7 |
SQL Server 7 |
515 |
通过以上表,我们就可以很快理解这个错误提示了。如果要查看Sql Server的内部版本号,也可以通过下面的Sql句来查看:
SELECT DATABASEPROPERTYEX('MASTER','VERSION')
(END)