Databaselerin Compatibility level ini değiştirmek

SQL Upgrade sonrası eski compatibility_level ı yeni versiyonun compatible level ına yükseltilir. Aşağıdaki tablodan uyumluluk modlarını görebilirsiniz, upgrade sonrası sp lerin, fonksiyonların vb yeni versiyonda düzgün çalıştığından emin olduktan sonra compatibility_level  ı yeni sürüme yükseltin.

Hangi level ın hangi versiyona denk geldiğini, ve hangi versiyonun hangi düşük versiyonlara kadar destek verdiği aşağıdaki tabloda görebilirsiniz.

ilgili Microsoft Döküman Linki

Product Database Engine Version Default Compatibility Level Designation Supported Compatibility Level Values
SQL Server 2019 (15.x) 15 150 150, 140, 130, 120, 110, 100
SQL Server 2017 (14.x) 14 140 140, 130, 120, 110, 100
Azure SQL Database MI 12 150 150, 140, 130, 120, 110, 100
Azure SQL Database 12 150 150, 140, 130, 120, 110, 100
SQL Server 2016 (13.x) 13 130 130, 120, 110, 100
SQL Server 2014 (12.x) 12 120 120, 110, 100
SQL Server 2012 (11.x) 11 110 110, 100, 90
SQL Server 2008 R2 10.5 100 100, 90, 80
SQL Server 2008 10 100 100, 90, 80
SQL Server 2005 (9.x) 9 90 90, 80
SQL Server 2000 (8.x) 8 80 80
--- Tüm Databaselerin compatibility level görmek için 
Select name,compatibility_level,
'ALTER DATABASE ['+name+'] SET COMPATIBILITY_LEVEL = 130;' script, 
----- 130 ya da farklı bir version set edilebilir..
version_name = CASE compatibility_level
WHEN 65 THEN 'SQL Server 6.5'
WHEN 70 THEN 'SQL Server 7.0'
WHEN 80 THEN 'SQL Server 2000'
WHEN 90 THEN 'SQL Server 2005'
WHEN 100 THEN 'SQL Server 2008/R2'
WHEN 110 THEN 'SQL Server 2012'
WHEN 120 THEN 'SQL Server 2014'
WHEN 130 THEN 'SQL Server 2016'
WHEN 140 THEN 'SQL Server 2017'
WHEN 150 THEN 'SQL Server 2019'
END
from sys.databases 
where database_id > 4 order by name
--- Compatibility_level 130 olmayanları 130 set etmek için.
declare @stt varchar(max)=''
select @stt+='ALTER DATABASE ['+name+'] SET COMPATIBILITY_LEVEL = 130;'+CHAR(10)
from sys.databases
where database_id > 4 and compatibility_level <> 130 order by name 
--exec (@stt)
print(@stt)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir