SQL SERVER 2019 – Supports Compatibility Level from 2008 to 2019

Compatibility Level from 2008 to 2019 requires separating database migration from engine upgrade support. SQL Server 2019 supports levels 100 through 150.

A large machine accepts a separate older fitting profile while another profile remains preserved.

Original SQL Server 2019 compatibility-level dropdown.
Original SQL Server 2019 compatibility-level dropdown.
SELECT name, compatibility_level FROM sys.databases ORDER BY name;
-- Approved change on an engine that supports level 150:
-- ALTER DATABASE [YourDatabase] SET COMPATIBILITY_LEVEL = 150;

Compatibility level controls selected language and query-processing behavior. It does not preserve every plan or make upgraded files readable by an older engine. Later engines also support level 150. That setting is not restricted to SQL Server 2019.

I incorrectly described a direct in-place upgrade from SQL Server 2008 or 2008 R2 to 2019. Supported in-place sources start at SQL Server 2012 SP4. Backup-and-restore migration is a separate route for eligible older databases. It needs its own application and feature assessment.

Preserve a restore-tested backup and workload baseline. Validate the migrated database at its retained level. Then test a higher level with representative queries and a rollback plan. Raising the level does not guarantee faster queries.

Reference: SQL Server 2019 upgrade and database-migration paths.

Related reading

Compatibility level is not an older engine executable, it is a supported behavior setting inside the installed engine.

Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.


Discover more from SQL Authority with Pinal Dave

Subscribe to get the latest posts sent to your email.

Compatibility Level, SQL Scripts, SQL Server, SQL Server Configuration
Previous Post
SQL SERVER – Error 17182: Unable to Initialize SSL Support. The Client and Server Cannot Communicate, Because They do Not Possess a Common Algorithm
Next Post
Application Locks With sp_getapplock: One Job at a Time

Related Posts

9 Comments. Leave new

  • Thanks Pinal Dave.

    Reply
  • Vijaya Nettem
    April 16, 2020 8:28 pm

    we have 2008R2 with few databases at compatibility level of 90. Can I still upgrade them directly to 2019? Or do I have to update teh compatibility level to 100 first and then do the upgrade?

    Reply
  • Raju Vishwakarma
    April 23, 2020 8:37 pm

    We have 2008R2 (RTM) with few databases at compatibility level of 90. Can I still upgrade them directly to 2019? Or do I have to update compatibility level to 100 and service pack to SP4 first and then do the upgrade?

    Please Suggest.

    Reply
  • Raju Vishwakarma
    April 23, 2020 8:53 pm

    Did you get the answer for your post
    I am also having the same scenario . Also I my DB server is running on SQL 2008R2 RTM version

    Reply
  • Vijaya Nettem
    July 23, 2020 9:42 pm

    No, I didn’t get any answer. But I was able to successfully upgrade to 2019. I updated the compatibility level on my databases to 100 , then I did sql upgrade to 2019 from 2008R2 without any issues.

    Reply
  • Francesco Mantovani
    September 30, 2020 5:57 pm

    Does features apply to previous compatibility level?

    I mean, I’m on SQL Server 2019 but my databases are still on Compatibility Level 110 (SQL Server 2012). I want to rebuild a fragmented index with the options RESUMABLE = ON and OPTIMIZE_FOR_SEQUENTIAL_KEY = ON. Will these new feature apply even if the Compatibility Level is 110?

    Reply
  • HI Vijaya can you please me here to upgrade the SQL server 2008 r2 to 2019.

    Reply
  • @Vijaya Nettam – Can you add here the steps that you followed for the MSSQL upgrade from 2008 to 2019 please.

    Reply
  • Hi
    I am not sure the 2008 version compatibility done through the server properties makes it a good database 2019 version with all the features. Some years ago I did an upgrade to azure from a 2008 version by retauring by hand a .bak from 2008 in 2012, then fix the issues, then do again for 2014, then again to 2016 then to azure.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.