大家都知道高級版本的數據庫文件無法還原或者附加到低版本,因為高版本和低版本文件格式會有不同。如果嘗試將低版本的數據庫附加或者還原到低版本的數據庫會看到類似下面的錯誤:
已備份數據庫的磁盤結構版本為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 |
|
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 |