Microsoft SQL Server 的较新版本创建的数据库无法附加或还原到较早的版本。之所以存在此限制,是因为较旧的版本不知道新版本中引入的文件格式有哪些变更。
如果你尝试将数据库附加到早期版本、或者还原到早期版本,将会收到 SQL Server 提示的版本错误。
可以通过如下SQL查询到一个数据库内部版本号。
SELECT DATABASEPROPERTYEX(N’AdventureWorks2014’, ‘Version’);
也可以查看备份文件中数据库的版本号。
RESTORE HEADERONLY FROM DISK = N’C:/Users/Administrator/Desktop/AdventureWorks2014.BAK’;
查看当前所有数据库的内部版本。在字段 status 中查询 “Version=”。
EXEC sp_helpdb;
更多内部版本及兼容级别:
SQL Server 版本 | 内部版本 | 兼容级别 | 支持的兼容级别 |
---|---|---|---|
SQL Server 2019 CTP 3.2 / RC 1 / RC 1.1 / RTM |
904 | 150 | 150,140,130,120,110,100 |
SQL Server 2019 CTP 3.0 / 3.1 |
902 | 150 | 150,140,130,120,110,100 |
SQL Server 2019 CTP 2.3 / 2.4 / 2.5 |
897 | 150 | 150,140,130,120,110,100 |
SQL Server 2019 CTP 2.1 / 2.2 |
896 | 150 | 150,140,130,120,110,100 |
SQL Server 2019 CTP 2.0 |
895 | 150 | 150,140,130,120,110,100 |
SQL Server 2017 | 868 / 869 | 140 | 140,130,120,110,100 |
SQL Server 2016 | 852 | 130 | 130,120,110,100 |
SQL Server 2014 | 782 | 120 | 120,110,100 |
SQL Server 2012 | 706 | 110 | 110,100,90 |
SQL Server 2012 CTP1 | 684 | 110 | 110,100,90 |
SQL Server 2008 R2 | 660 / 661 | 100 | 100,90,80 |
SQL Server 2008 | 655 | 100 | 100,90,80 |
SQL Server 2005 SP2+ | 612 | 90 | 90,80,70 |
SQL Server 2005 | 611 | 90 | 90,80,70 |
SQL Server 2000 | 539 | 80 | 80,70 |
SQL Server 7.0 | 515 | 70 | 70 |
SQL Server 6.5 | 408 | 65 | 65 |
SQL Server 6.0 | 406 | 60 | 60 |