标题: Microsoft SQL Server Management Studio
------------------------------
附加数据库 对于 服务器“XXXX”失败。 (Microsoft.SqlServer.Smo)
------------------------------
其他信息:
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
无法升级数据库 'XXXDB',因为此版本的 SQL Server 不支持该数据库的非发布版本(539)。
不能打开与此版本的 sqlservr.exe 不兼容的数据库。必须重新创建该数据库。
无法打开新数据库 'XXXDB'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 950)
------------------------------
还原数据库的时候遇到如上问题,发现是因为将sql server 2000的备份文件,在sql server2014版本上还原的结果。
经过检索得知:原来539 是Sql Server2000数据库的内部版本号,也就是说要附加的数据库文件是由Sql Server 2000创建的,但是我们知道Sql Server 2014 数据库是不兼容Sql Server 2000数据库的。
查看sql server的内部版本号
SELECT DATABASEPROPERTYEX('MASTER','VERSION');
要解决这个问题,需要借助 sql server 2005或sql server 2008.
方法一:
如果电脑里安装了SQL2005或Sql server 2008的话,也可以先用SQL2005或Sql server 2008直接还原SQL2000的bak文件,
然后在SQL2005或Sql Server 2008下备份后生成X.bak备份集,最后可以直接用SQL2008的SSMS还原,
或者是附加数据库,附加方法同下面操作相同。
方法二:(mdf文件也需要先借助sql server 2008以下版本还原。)
1.如果没有就先将bak文件用sql2000还原后就在C:\Program Files\Microsoft SQL Server 下面的一个data文件里就有了。
记得要同时考出两个文件x.mdf和x.ldf。
2,将文件的属性取消只读属性,然后确定。
3,打开SSMS后连接好服务器,然后附加数据库,选中mdf文件,记得mdf文件必须和ldf文件放在同一个位置,
否则可能会失败。
4,最后一步就是点确定执行,只要没有报错就是成功了,重启电脑后打开ssms看见数据库里多了个刚还原的数据库。
注意:
Sql server 2014 要还原Sql server2000的数据库,必须通过 Sql server 2005 或 Sql server 2008做中介, 先转一次,再备份,再到Sql server 2014上面还原。
将sql server2000的备份数据还原到sql server 2008中关键是一定不要建立一个新的数据库文件(还原会出错), 而是直接还原的时候在目标数据库处给待还原的数据库起个名字就可以了!
直接将sqlserver2000的备份还原到sqlserver2014是不行的,你需要一个sqlserver2008来做中转。
将sqlserver2000的数据还原到sqlserver2008,再将sqlserver2008的备份还原到sqlserver2014。
2008到2014,操作和2000到2008一样,只是使用的bak文件不同。
参考文献: http://www.office-cn.net/access-adp/202.html
