We are migrating from our old SQL Server 2016 to a new SQL Server 2022, with plans to upgrade ArcGIS Enterprise from 10.9.1 to either 11.1 or 11.3.
As part of the migration, we noticed that the database on SQL Server 2022 is currently set to the SQL Server 2016 (130) compatibility level.
I am not very familiar with SQL Server, so I have a few questions:
How does the database compatibility level setting influence how SQL Server operates, particularly in relation to our ArcGIS Enterprise geodatabase?
If we change the database compatibility level to SQL Server 2019, will ArcMap users (who are not ready to switch to ArcGIS Pro yet) still be able to connect to and work with the enterprise geodatabase on SQL Server 2022?
Thanks in advance for any guidance.
Short answer: it won't matter in this case what you set it to. It is very, very rare that something in ArcGIS would hinge on the database compatibility level. However, technically speaking ArcMap is not supported with SQL Server 2022 (regardless of the compatibility level). We won't prevent you from connecting, but it is an unsupported configuration.
Longer, more detailed explanation of compat levels: The SQL Server compatibility level is a property of the database that basically controls which SQL Server features or TSQL syntax is available. It is really there so that older SQL Server applications, that may use deprecated features or syntax, can connect to databases on newer versions of SQL Server. For example, many years ago the where clause join syntax was deprecated in favor of ANSI join syntax. At a specific release that syntax was no longer available and could not be used....unless the database compatibility level was set to an earlier version before that syntax disappeared.
The compatibility level is not automatically increased on existing databases when you upgrade SQL Server unless the compat level is earlier than SQL Server 2017 (I think 100). It is an explicit choice that the DBA makes, based on what applications are currently interacting with that database, and do they need older things that may not be present in a new database. The opposite can also be true - there may be new features tied to a new compatibility level that you'd like to take advantage of. Often Microsoft will introduce a new optimization behind a trace flag, and in a later release it will no longer require a trace flag, but the compatibility level will need to be increased.
The compatibility level isn't the same as the release of SQL Server where the database is hosted. If you have SQL Server 2022, and new databases you create will automatically have the 2022 compatiblity level (170), but existing databases won't get upgraded. However, everything on that instance will be a 2022 database. Version and compatibility levels are not the same thing.