Sql-Server

基於sql server版本的數據庫兼容級別

  • June 26, 2020

我們需要檢查特定實例上不處於正確兼容級別的數據庫。例如,在 SQL Server 2016 實例上,如果存在兼容級別不是 130 的數據庫,我們需要將它們列出。同樣,在 SQL Server 2017 上,如果存在兼容級別不是 140 的數據庫,我們需要列出它們。

看看下面的腳本

SELECT name as 'Database name',
      compatibility_level AS 'Compatibility level',
      @@VERSION as 'SQL Version'          
FROM   sys.databases S

如評論中所述,您需要查詢 sys.databases 以獲取相關資訊。

下面將是直接查詢:

select name from sys.databases
where compatibility_level not in(130) -- you can hardcode this based on version of SQL server
and database_id > 4

如果你想概括它,你可以使用下面的查詢:

select name from sys.databases
where compatibility_level not in(select compatibility_level from sys.databases where database_id = 1)
and database_id > 4

除非在發生數據庫升級(就地)的情況下或您在 Azure 上工作,否則上述方法可以正常工作。你可以在這裡閱讀更多。

以上希望有所幫助。

引用自:https://dba.stackexchange.com/questions/252938