日期:2014-05-16 浏览次数:20545 次
大家都知道高级版本的数据库文件无法还原或者附加到低版本,因为高版本和低版本文件格式会有不同。如果尝试将低版本的数据库附加或者还原到低版本的数据库会看到类似下面的错误:
已备份数据库的磁盘结构版本为611,服务器支持版本为539,无法还原或升级数据库。RESTORE FILELIST 操作异常结束。(MicrosoftSQL Server,错误:3169)
可以看到这里有两个版本号,不是我们平时看到的服务器版本号(select @@version),而是SQLServer内部数据库版本号。这些版本号是没有官方文档的。不过我们可以使用DATABASEPROPERTYEX ‘Version’选项获得这个版本号。
select DATABASEPROPERTYEX('master','version')
这里我从网上找到了所有SQLServer版本对应的内部数据库版本号的配置表(ternal SQL Server Database Version Numbers):
| 
 
 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  | 
|
| 
 
 S
                        
                    
                    
                      |