The date, and what it does not mean
SQL Server 2016 reached the end of extended support on July 14, 2026. Mainstream support had already ended on July 13, 2021. The date applies to every edition: Enterprise, Standard, Web, Express and Developer.
End of support, which most people search for as end of life, does not switch anything off. The instance starts, the databases open, and the applications connected to it behave exactly as they did in June. Nothing expires and no license check fails.
What stopped is the patching. Microsoft no longer ships security updates for SQL Server 2016 unless the instance is covered by a paid Extended Security Updates subscription, and it no longer provides technical support for it. The next vulnerability found in the database engine stays open on your server. Auditors, cyber insurers and customer security questionnaires all ask about unsupported software, so the pressure usually arrives from one of them before it arrives from an attacker.
Every SQL Server version and its support date
| Version | Mainstream support ended | Extended support ends | Where it stands |
|---|---|---|---|
| SQL Server 2014 | July 9, 2019 | July 9, 2024 | Out of support. The last year of paid updates ends in July 2027 |
| SQL Server 2016 | July 13, 2021 | July 14, 2026 | Out of support. Paid updates run to July 2029 |
| SQL Server 2017 | October 11, 2022 | October 12, 2027 | Security updates only. The next version to end |
| SQL Server 2019 | February 28, 2025 | January 8, 2030 | Security updates only |
| SQL Server 2022 | January 11, 2028 | January 11, 2033 | Fully supported |
| SQL Server 2025 | January 6, 2031 | January 6, 2036 | Fully supported, the newest version |
Two things follow from the table. If you are on SQL Server 2017, you have under a year before you are in the same position. And if you upgrade from 2016 to 2019, you land on a version that is already past mainstream support, so 2022 or 2025 is the sensible target.
Your three options
Upgrade to SQL Server 2022 or 2025 Stay on your own servers
SQL Server 2016 with Service Pack 3 can be upgraded directly to SQL Server 2022 or SQL Server 2025. You keep the environment your team knows, and you keep full control of the server. You also keep the work: hardware, Windows patching, backups and the next upgrade are still yours, and SQL Server 2025 does not run on Windows Server 2016, so the operating system may have to move first.
Move to Azure SQL Stop upgrading for good
Azure SQL Managed Instance and Azure SQL Database are kept current by Microsoft, so there is no version to fall out of support again. Managed Instance is the closer match to a server you already run: it supports cross-database queries, SQL Server Agent jobs and CLR. Azure SQL Database is a single-database service and leaves those instance-level features out, so applications that depend on them need changes. A SQL Server virtual machine in Azure is the third route: the same product, on rented hardware, still yours to patch.
Buy Extended Security Updates Buy time
A subscription that delivers security fixes for up to three more years, into July 2029. It is the right answer when an application cannot be recertified on a newer version in time. It is a holding position, not a destination, and the next section explains why.
What Extended Security Updates cover, and what they do not
Read this before you budget for ESUs
- Only Critical fixes. An update ships only when the Microsoft Security Response Center rates a vulnerability as Critical. There is no regular release schedule, and vulnerabilities rated Important are not fixed.
- No bug fixes and no support. Performance problems, incorrect results and anything else that is not a Critical security issue stay as they are. Support covers installing the updates and nothing more.
- The server must be connected to Azure. An instance on your own hardware, or in another cloud, qualifies once it is connected to Azure Arc. Connecting to Azure Arc is free. An instance on an Azure virtual machine subscribes through the SQL IaaS Agent extension.
- There are licensing conditions. You need Software Assurance under an eligible agreement, or pay-as-you-go billing through Azure Arc.
- It is not free in Azure any more. SQL Server 2014 customers got Extended Security Updates at no charge by moving to Azure virtual machines. For SQL Server 2016 that benefit is gone: you can subscribe there, but you pay.
- It is expensive. Microsoft's own guidance puts the cost at about 75% of the on-premises license cost each year.
Three years of ESUs can cost more than twice the license you already own, and at the end you still have to upgrade.
What to check before you choose
Half a day of inventory decides which option is realistic. In rough order of how often each one changes the plan:
- Find every instance, not just the one you know about. Run
SELECT @@VERSIONon each server, and look for SQL Server Express installed alongside vendor software, on build servers and on developer machines. Version 13.x is SQL Server 2016. Express editions follow the same dates. - Check the service pack. Only Service Pack 3 can be upgraded directly to SQL Server 2022 or 2025, and Extended Security Updates build on the latest cumulative update. An instance that was never patched needs that work first.
- Check the Windows Server version underneath. SQL Server 2025 does not support Windows Server 2016, and Windows Server 2016 itself reaches the end of extended support on January 12, 2027. If the operating system has to change, a new server and a side-by-side migration is usually safer than upgrading in place.
- List what runs outside the database engine. Reporting Services, Integration Services packages, Analysis Services, SQL Server Agent jobs, linked servers, CLR assemblies, replication and Database Mail. These decide whether Azure SQL Database, Managed Instance or a virtual machine fits, and they are where most of the migration effort goes.
- Ask every vendor what they support. A packaged application certified only for SQL Server 2016 is the most common reason an upgrade stalls. Get the answer in writing, with a date.
- Record each database's compatibility level. A SQL Server 2016 database runs at level 130. That number is your safety net in the next section.
- Find every connection string. Applications, reports, scheduled scripts and spreadsheets all point at a server name. A new server means each of them changes or a DNS alias takes the old name.
What actually changes after an upgrade
The compatibility level protects you, until you raise it
- An upgraded database keeps its compatibility level. A database at level 130 stays at 130 on SQL Server 2022 or 2025, and the query optimizer keeps behaving as it did on 2016. Microsoft's compatibility certification is built on this: an application certified at a level stays certified on any newer engine running that level.
- Raising the level changes query plans. Each newer level turns on optimizer behavior that was not there before. Most queries get faster. A few get slower, and those are the ones users notice.
- Turn on Query Store before you raise it. Query Store has been in the product since SQL Server 2016. Let it record a normal week at the old level, raise the level, and it will show you which plans changed and let you force the old one back.
- Raise it one database at a time. The setting is per database, so the reporting database can move first and the order-entry database can wait.
Upgrade the engine first and leave the level alone. Raise it later, as its own change, when you can watch it.
Things with no path to SQL Server 2025
- Reporting Services. A Reporting Services installation cannot be upgraded to SQL Server 2025. Plan the reports as their own migration.
- Data Quality Services and Master Data Services. Neither can be upgraded to SQL Server 2025.
- Web edition. It is not available in SQL Server 2025. A Web edition instance moves to Standard or Enterprise, which changes the license cost.
- Windows Server 2016. Not supported by SQL Server 2025.
If you depend on any of these, SQL Server 2022 is the simpler target, and it is supported until January 11, 2033.
The applications around the database
- What a database backup does not carry. Logins, SQL Server Agent jobs and linked servers live in the instance, not in the database. Restore a backup on a new server and the data arrives without them, so script them out and move them separately.
- Every application, not only the main one. Reports, scheduled scripts and spreadsheets connect too. Test each of them against the new server before the cutover.
- Features Azure SQL Database leaves out. Cross-database queries, linked servers and SQL Server Agent jobs need a replacement there. Managed Instance keeps them.
- The .NET runtime of the applications. A database upgrade is often the moment a team finds the application itself is out of support. .NET 8 and .NET 9 reached the end of support on November 10, 2026; see .NET 8 and .NET 9 end of life: what actually breaks, or paste your project files into the free .NET end-of-support checker.
A sequence that works
Inventory
Every instance, its edition and service pack, its Windows version, and what runs beside the database engine. Output: one list with an owner against each row.
Decide per instance
Upgrade, Azure SQL or ESUs. Different instances can take different routes, and the vendor answers usually decide it.
Cover the gap
If the move will take months, connect the instance to Azure Arc and subscribe to ESUs now. The subscription is billed hourly and can be canceled the day you finish.
Rehearse on a copy
Restore last night's backup to the new platform, point a test copy of each application at it, and run the month-end jobs. The surprises show up here, where they are cheap.
Cut over, then raise the compatibility level
Move with the level unchanged. Raise it weeks later, one database at a time, with Query Store recording.
The instances that are still on SQL Server 2016 next year will not be the ones that were hard to upgrade. They will be the ones nobody listed.
When the database is not the hard part
Often the SQL Server upgrade itself is a weekend, and the real work is an application nobody wants to touch: a .NET Framework system with the SQL written into the screens, or software whose developer has left. If that is your situation, the guide to what to do when your developer leaves covers how to read a system you did not build, and our legacy .NET modernization assessment prices the application side for a fixed fee.
For the database itself, Craftware handles SQL Server upgrades and migrations to Azure SQL as part of our Azure SQL and SQL Server database work.
Sources
Every date and limit on this page traces to Microsoft's own documentation.
- SQL Server 2016 lifecycle
- SQL Server 2014 lifecycle
- SQL Server 2017 lifecycle
- SQL Server 2019 lifecycle
- SQL Server 2022 lifecycle
- SQL Server 2025 lifecycle
- SQL Server end of support options
- What are Extended Security Updates for SQL Server?
- Supported version and edition upgrades (SQL Server 2025)
- Upgrade SQL Server
- Compatibility certification
- Windows Server 2016 lifecycle