Ali Elmi.SQL Server · Performance

SQL Server versions, at a glance

Two releases still in mainstream support, two more in extended support, ten retired — and one tool, SSMS, that has managed every single one of them since 1995.

A timeline of Microsoft SQL Server releases from 2012 to 2025. 2012, 2014, and 2016 are shown dimmed and labelled RETIRED; 2017, 2019, 2022, and 2025 glow in a teal-to-gold gradient and are labelled SUPPORTED. An SSMS icon below connects to all seven with glowing lines, and faint cloud-and-shield icons in the corners represent Azure Arc-managed security.

Still getting updates

Current

SQL Server 2025

Released
18 Nov 2025
Latest
CU7 · 17.0.4065.4
End of support
7 Jan 2036
Current

SQL Server 2022

Dallas

Released
16 Nov 2022
Latest
CU26 · 16.0.4265.3
End of support
11 Jan 2033
Extended support

SQL Server 2019

Aris Seattle

Released
4 Nov 2019
Latest
CU32 · 15.0.4430.1
End of support
8 Jan 2030
Extended support

SQL Server 2017

vNext

Released
2 Oct 2017
Latest
CU31 · 14.0.3456.2
End of support
12 Oct 2027

Full release history

VersionCodenameReleasedLatestBuildEnd of supportStatus
SQL Server 202518 Nov 2025CU717.0.4065.47 Jan 2036Current
SQL Server 2022Dallas16 Nov 2022CU2616.0.4265.311 Jan 2033Current
SQL Server 2019Aris Seattle4 Nov 2019CU3215.0.4430.18 Jan 2030Extended support
SQL Server 2017vNext2 Oct 2017CU3114.0.3456.212 Oct 2027Extended support
SQL Server 20161 Jun 2016SP313.0.6300.214 Jul 2026Retired
SQL Server 20141 Apr 2014SP3 CU4 (final)12.0.6329.19 Jul 2024Retired
SQL Server 2012Denali6 Mar 2012SP4 (final)11.0.7001.012 Jul 2022Retired
SQL Server 2008 R2Kilimanjaro21 Apr 2010SP3 (final)10.50.6000.34Retired
SQL Server 2008Katmai7 Aug 2008SP4 (final)10.0.6000.29Retired
SQL Server 2005Yukon7 Nov 2005SP4 (final)9.0.5000Retired
SQL Server 2000Shiloh30 Nov 2000SP4 (final)8.0.2039Retired
SQL Server 7.0Sphinx27 Nov 1998SP4 (final)7.0.1063Retired
SQL Server 6.5Hydra30 Jun 1996SP5 (final)6.50.416Retired
SQL Server 6.0SQL9513 Jun 1995(final)6.00.151Retired

Build/CU numbers for 2012 onward from sqlserverbuilds.blogspot.com, updated within days of each release. End-of-support dates from Microsoft's own Lifecycle pages — not published for 2008 R2 and earlier, long past any support window. Both move faster than this snapshot — check them directly for anything you're about to act on.

Retired doesn't have to mean unpatched: Azure Arc

2016 joined 2012 and 2014 on the retired list on 14 July 2026 — no more free security fixes from Microsoft, full stop, for an instance running standalone. That's not actually where most 2012/2014/2016 instances end up, though. Azure Arc-enabled SQL Server is a lightweight agent you install on the box — on-prem, in a VM, in another cloud, doesn't matter — that registers the instance with Azure without moving or touching the data. Once it's Arc-connected, Microsoft will sell (and for Software Assurance customers, sometimes include) Extended Security Updates for that retired version — the same critical and security fixes a supported version still gets — for up to three more years past its official end-of-support date, delivered the same way normal CUs always were.

It also buys more than patches: Arc surfaces the instance in the Azure portal alongside everything else, extends Defender for Cloud's vulnerability assessment to it, and gives you a single inventory of every SQL Server instance you run — 2012 through 2025 — regardless of where it physically lives. For a 2012 or 2014 box that can't be migrated on anyone's realistic timeline, that's the difference between "unsupported and exposed" and "unsupported and still getting fixed."

Why any of this matters

SELECT @@VERSION tells you the build, not the story. A build number maps to a specific set of fixes — and specific, sometimes serious, bugs that were fixed after it. Knowing where an instance sits on this timeline — current, extended, or retired, and whether Extended Security Updates are even an option for it — is the first question before diagnosing anything else on it: half of "this is slower than it used to be" turns out to be a missing CU, not a missing index.