SQLServer 的備份文件是以.bak 為后綴的文件,如果想要通過備份文件查看數據庫版本,通常的做法就是把數據庫還原,但是在還原的過程,如果不是相同的數據庫版本,就會導致無法還原;
在數據庫中,低版本的備份文件是可以還原到高版本的數據庫中,高的就不可以了,比如SQLSERVER 2008 的備份文件可以在SQLSERVER 2012 中還原,2012就不能在2008中還原;
看下,我們常規的做法,找到 .bak 備份文件,鼠標右鍵,查看屬性能否有描述信息;
然而並沒有任何信息,說明此方法不可行。
這時候,我們就可以用一段腳本來查看,如下:
RESTORE HEADERONLY FROM DISK = N'D:\SQLSERVER_DATA\備份文件\XXXX.bak'
注意列 - ServerName,UserName,DatabaseName,DatabaseVersion。我們可以從這些列中找出原始服務器名稱和數據庫版本。
以下是所有SQL Server版本及其從SQL Server 2008到最新版本SQL Server的兼容級別的快速列表。
SQL Server 版本 | 內部數據庫版本 | 數據庫兼容級別 |
---|---|---|
SQL Server 2017 | 869 | 140 |
SQL Server 2016 | 852 | 130 |
SQL Server 2014 | 782 | 120 |
SQL Server 2012 | 706 | 110 |
SQL Server 2008 R2 | 660/661 | 100 |
SQL Server 2008 | 655 | 100 |
那么,對比上面的列表,我就可以知道,我的這個備份文件是2008 的備份文件;