Sql-Server
基於sql server版本的數據庫兼容級別
我們需要檢查特定實例上不處於正確兼容級別的數據庫。例如,在 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 上工作,否則上述方法可以正常工作。你可以在這裡閱讀更多。
以上希望有所幫助。