Are SQL Server Compatibility Levels Transparent to the Client?

I'm working with a client through the process of modernising their old server infrastructure. They have left a McAfee ePO instance for too long without upgrading and we are now dealing with an unsupported upgrade path.

As part of this modernisation the ePO's database will be moved from a local SQL Server 2008 R2 instance to a new SQL Server 2019 cluster. Unfortunately the current ePO version does not support Server 2019 and the target version does not support Server 2008 R2 so we're hitting a potential impasse.

When the database is migrated to the SQL Server 2019 cluster, it will have its compatibility level (automatically) upgraded to 2012, which is supported by both the source and target server versions.

My question is: from the client perspective is an SQL Server 2019 any different from an SQL Server 2012 if both servers are hosting the same database at the same compatibility level?

Will there be potential connector or API/ABI issues?


Solution 1:

The official stance from MS seems to be "this is fine". Specifically, they speak to it here.

From the link (for posterity):

Database Compatibility Level is a valuable tool to assist in database modernization, by allowing the SQL Server Database Engine to be upgraded, while keeping connecting applications functional status by maintaining the same pre-upgrade Database Compatibility Level. This means that it is possible to upgrade from an older version of SQL Server (such as SQL Server 2008) to SQL Server 2019 (15.x) or Azure SQL Database (including Managed Instance) with no application changes (except for database connectivity).