question

OliverTrendelkamp-6016 avatar image
0 Votes"
OliverTrendelkamp-6016 asked ErlandSommarskog edited

Support of software vendors for setting the SQL Server version using the COMPATIBILITY_LEVEL parameter

Does anyone have an idea, why some software vendors do not support setting a SQL Server version via the COMPATIBILITY_LEVEL paramater?

For example, I want to migrate all databases of a SQL Server 2017 to a SQL Server 2019. The software vendor of one database of a third-party application does not yet support the SQL Server 2019 - but also does not provide support, if you move the database to the SQL Server 2019 and leave the COMPATIBILITY_LEVEL on 140 (V2017).

sql-server-general
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

TomPhillips-1744 avatar image
0 Votes"
TomPhillips-1744 answered OliverTrendelkamp-6016 commented

Setting the compatibility level does NOT make the engine 100% compatible with the other version. It only changes specific functionality. That is why they do not support it.

However, there are very few "breaking" changes between SQL 2017 and 2019. I would not expect any issues.

https://docs.microsoft.com/en-us/sql/database-engine/breaking-changes-to-database-engine-features-in-sql-server-version-15?view=sql-server-ver15

· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Thank you for your answer and your assessment.

0 Votes 0 ·
ErlandSommarskog avatar image
0 Votes"
ErlandSommarskog answered OliverTrendelkamp-6016 commented

Because they feel that can only support what they have actually tested.

Let's say that you upgrade to SQL 2019 and run with compat level 140. Now you run into an issue with the application which all of sudden claims that 2+2=5. The vendor is not able to repro this when they test on SQL 2017. And since your database is on SQL 2019, they cannot restore it on SQL 2017. The vendor will simply tell you that Microsoft broke something. And maybe Microsoft did. It has happened.

To verify what actually happened can take quite a bit of time for the vendor or so they think. Which they may not really be able to bill you for. So they say up front: this is not supported.

I can't really disagree with this policy. But it is remarkable that they don't support SQL 2019, given that it has been out for soon two years.

· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Thank you also for your explanations and example. Possibly we will keep sql server 2017 a little longer...

0 Votes 0 ·
Cathyji-msft avatar image
0 Votes"
Cathyji-msft answered ErlandSommarskog edited

Hi @OliverTrendelkamp-6016,

why some software vendors do not support setting a SQL Server version via the COMPATIBILITY_LEVEL paramater?

Did they meet any issue when they upgrade SQL 2017 to SQL 2019, and set the database COMPATIBILITY_LEVEL to 14?



Quote from MS document Compatibility levels and Database Engine upgrades.

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.

As long as the application does not need to leverage enhancements that are only available in a higher Database Compatibility Level, it is a valid approach to upgrade the SQL Server Database Engine and maintain the previous Database Compatibility Level.



If the response is helpful, please click "Accept Answer" and upvote it, as this could help other community members looking for similar thread.



· 3
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

So far, I only have the information from one third-party manufacturer that the use of the parameter is not supported. Whether I will try it nevertheless is not yet decided.
Many thanks for your feedback.

0 Votes 0 ·
Cathyji-msft avatar image Cathyji-msft OliverTrendelkamp-6016 ·

Hi @OliverTrendelkamp-6016,

Thanks for your reply.

Suggest you testing this in a test environment.

0 Votes 0 ·
ErlandSommarskog avatar image ErlandSommarskog OliverTrendelkamp-6016 ·

And, yeah, different vendors may make different decisions.

0 Votes 0 ·