MSSQL Compatibility Level

SQL Server da her sürüm için veritabanına numara verilmiştir. SQL Server belirtilen veritabanın davranışlarının belirtilen sürüm ile uyumlu olacak şekilde ayarlar bundan dolayı bazı özellikler bazı sürümlerde kullanılmamaktadır.

 

Örneğin: SQL Serverın 2012  versiyonunda Alter Table komutunu kullanırken servername.databaseadı.schemadı.table formatında kullanılmıyordu fakat  SQL Serverın 2014  versiyonundan sonra bu formatta da kullanabiliriz. Daha iyi anlaşılabilmesi için aşağıda  örnek ile açıklamak istedim.

SQL Server 2012 : Alter Table dbo.Table_1 ADD  name nvarchar(30)

 

SQL Server 2014  ve Sonrası için: Alter Table MSSQLServer.Mssqlİnstance. Dbo.Table_1 ADD name nvarchar(30)

 

Burada dikkat edilecek diğer bir konu eski sürümden yeni sürüme geçtiğinizde eğer birkaç  versiyon birden atlama yaptıysanız SQL Server Compatibility Level’e  kendi destekleyeceği en düşük seviyeye çekecektir. Bundan dolayı bazı problem yaşayabilirsiniz. Compatibility Level’i  Veritabanın üzerine sağ  tıklayarak  Properties kısmındaki options içinde yer alan  Compatibility Level bölümünden değiştirebiliriz.

Örnek olarak SQL Server 2008 kullanılırken SQL Server 2012 ye geçtiğinizde   hala 2008 versiyonunda ki bazı şeyleri kullanabilirsiniz fakat SQL Server 2016 versiyonuna yükselttiğinizde SQL Server 2008 de bulunan bazı özellikleri kullanamayacaksınız.

 

Aşağıda Sql Server sürümleri ve onlara karşılık gelen compatibility leveller bulunmaktadır.

Ürün Veritabanı  Sürümü Uyumluluk Düzeyi Tanımı Desteklenen Uyumluluk Seviyesi Değerleri
SQL Server 2017 14,00 140 140, 130, 120, 110, 100
Azure SQL Veritabanı 12,00 *130 140, 130, 120, 110, 100
SQL Server 2016 13,00 130 130, 120, 110, 100
SQL Server 2014 12,00 120 120, 110, 100
SQL Server 2012 11,00 110 110, 100, 90
SQL Server 2008 R2 10,00 100 100, 90, 80
SQL Server 2008 10,00 100 100, 90, 80
SQL Server 2005 9,00 90 90, 80
SQL Server 2000 8,00 80 80

 

*Not: Azure SQL veritabanları 12 aralık 2014 de piyasaya sürülmüştür. İlk piyasaya sürüldüğünde compatibility level’i 120 olarak ayarlanmıştır fakat 2015 de  yeni veritabanı oluşturulduğunda default’u 130 olarak gelmektedir.