This post is part of a series we are calling “SQL Server 2016 – The Final Countdown.”
If you’re planning on upgrading from SQL Server 2016 to the current version of SQL Server 2025, it would be helpful to note some of the features from versions since 2016 that are no longer supported. By that I’m talking about those things classified as “deprecated” (no longer supported) or “discontinued” (removed from the product). Let’s take a look at these features and say our goodbyes, organized by versions.
SQL Server 2017
So here’s a fun fact I found while researching deprecated features for a SQL Server 2016 migration. When you pull up the Deprecated Database Engine features in SQL Server 2017 page on Microsoft Learn and scroll down a bit, Microsoft comes right out and tells you:
“This list is identical to the SQL Server 2016 (13.x) list. There are no new deprecated or discontinued Database Engine features announced for SQL Server 2017 (14.x).”
In other words, SQL Server 2017 was a freebie on the deprecation front. Nothing new got flagged for removal. Which was great for us, but it also means if you’re migrating from SQL Server 2016 or 2017 to something newer, the same missing features could bite you when you upgrade to a higher version.
SQL Server 2019
SQL Server 2019 was fairly quiet in the deprecation department. According to the Deprecated Database Engine features in SQL Server 2019 page, only two items got newly flagged, but unfortunately they’re both big ones for folks with BI and data governance workloads.
Data Quality Services (DQS)
DQS is the knowledge-base-driven data cleansing feature from the Microsoft BI era. It lets you build domains of valid values and then match/cleanse data against them. If you’re not using it, great – skip ahead. If you are, well, consider this your heads up: it still works in SQL Server 2019 and 2022, but Microsoft removed it entirely in SQL Server 2025.
Why it matters: Any ETL workflow, SSIS package, or MDM process that leans on DQS won’t just be deprecated on SQL Server 2025 – it simply won’t be there at all. Start evaluating alternatives now (Azure-based cleansing services, third-party tools, or custom solutions) before somebody tells you the SQL 2025 upgrade is happening next week.
Master Data Services (MDS)
Same story as DQS. MDS is Microsoft’s master data management platform, used for building golden records of customers, products, accounts, whatever. Deprecated in 2019, it still works in 2022, but it also was removed in SQL Server 2025.
Why it matters: If you’ve built hierarchies, business rules, and workflows in MDS, that’s a significant migration project waiting for you. Don’t let it surprise you during the upgrade meeting.
Also, some database scoped configuration options were quietly retired in SQL Server 2019. None of these will probably wake you up at 2am, but they’re worth knowing about if you inherited scripts from an earlier era. Here are some examples.
DISABLE_BATCH_MODE_ADAPTIVE_JOIN
This was the off switch for the adaptive joins feature (introduced in SQL Server 2017). In 2019, Microsoft decided you shouldn’t need a knob for that anymore, so they removed it.
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK
Same idea, different feature. Memory grant feedback no longer has a dedicated disable switch at the database scoped configuration level.
DISABLE_INTERLEAVED_EXECUTION_TVF
The disable switch for interleaved execution of multi-statement table-valued functions is gone too.
Why any of these matter: If you ran across any older “performance tuning” scripts from around 2017-2018 that attempted to flip these switches, they’ll now throw errors on SQL 2019+. Clean those up before running them post-upgrade.
SQL Server 2022
This is where things get interesting. SQL Server 2022 flagged several notable features for deprecation, per the Deprecated Database Engine features in SQL Server 2022 page.
Distributed Replay
Remember Distributed Replay? It was (is?) the multi-machine workload replay tool. Think of it as SQL Server Profiler’s cousin that could replay a trace from several client machines at once to simulate a real production load. This has been very handy for pre-upgrade testing for manyof us.
Except now it’s deprecated. Even worse: it’s not even shipped with SQL Server 2022 anymore. The Distributed Replay overview page bluntly says:
“Distributed Replay is deprecated as of SQL Server 2022 (16.x)… The Distributed Replay Controller has been removed from SQL Server 2022 Setup.”
Why it matters: If your team uses Distributed Replay as part of your pre-upgrade testing workflow (and if you’re running production workloads in the hundreds of batches per second, you might be), you’ll need to stop, because it’s removed from setup in 2022. Microsoft suggests RML Utilities which includes ostress as an alternative. It’s not a perfect replacement, but it’s what we’ve got.
Machine Learning Server (Standalone)
Not to be confused with SQL Server Machine Learning Services (in-database R/Python), Machine Learning Server was the standalone product for running R and Python workloads outside SQL Server. Extended support for the standalone product ended on July 1, 2022, so this one was already essentially dead before 2022 even shipped.
Why it matters: If you were running a standalone ML Server as part of your data science stack, you need to migrate to Azure Machine Learning or some other platform. The in-database Machine Learning Services feature inside SQL Server is still supported, so don’t confuse the two.
Stretch Database
Stretch Database was the feature that let you transparently migrate cold rows from an on-premises table to Azure SQL Database while making them still queryable. The actual performance may not have been the best, which might be why it never really caught on. Anyhow, now Stretch Database is deprecated.
Here’s the best part: even if you ignored the deprecation, Microsoft discontinued Stretch Database in all supported versions of SQL Server as of July 2024. So it’s gone. If you had it enabled, you had to migrate your data back on-prem before July 2024 or it became inaccessible.
Why it matters: Hopefully you already handled this, because July 2024 is way far in the rearview mirror. But if by some chance you have a dusty old instance still running Stretch Database, you’ve got a data retrieval problem you need to deal with several yesterdays ago.
SQL Server 2022 really went big with the discontinuation list, cleaning house on a lot of “big data” tech that never really delivered on its promise. Here are some more features in the graveyard.
PolyBase Scale-Out Groups
PolyBase is still around as a data virtualization feature, but the scale-out group functionality (where you could cluster multiple SQL Server instances to parallelize external queries) has been removed entirely from SQL Server 2022.
Why it matters: If you built any kind of PolyBase cluster for querying Hadoop or external data at scale, that architecture needs to be rethought. PolyBase as a scale-up feature on a single SQL Server instance still works though.
Hadoop (HDFS) External Data Sources for PolyBase
If you had PolyBase external data sources configured with TYPE = HADOOP, those are no longer supported in SQL Server 2022. You have to manually recreate them using the new connectors. Similarly, if you were connecting to Azure Storage with the old wasb[s] or abfs[s] syntax, you need the new abs and adls connectors respectively.
Why it matters: This is not a “just upgrade and it works” situation. If your shop was using PolyBase to federate queries against Hadoop or Azure Storage, you have actual T-SQL to rewrite.
Machine Learning Services Packages Removed from Setup
Starting with SQL Server 2022, Microsoft stopped bundling certain R and Python packages with the install. Specifically: microsoftml (Python), olapR (R), sqlrutils (R), and MicrosoftML (R). You can still install them as custom packages, they’re just no longer out-of-the-box.
Why it matters: If you upgrade a SQL Server with in-database R/Python scripts that import these packages, you’ll get runtime errors unless somebody installs them manually on the new instance. Check your sp_execute_external_script calls.
SQL Server Big Data Clusters
SQL Server Big Data Clusters – the 2019-era Kubernetes-based SQL + Spark + HDFS platform – was officially retired as of February 28, 2025. It’s no longer a thing in SQL Server 2022 either.
Why it matters: If you deployed BDC, you have a whole architecture to replace. From what I can tell, Microsoft now recommends a mix of SQL Server 2022 with object storage, Azure Synapse (now largely replaced by Microsoft Fabric, but I’ll get to that), or Azure Machine Learning for the predictive workloads.
SQL Server 2025
SQL Server 2025 is still fairly new (at least it was at the time I’m writng this), but it’s already flagged two configuration-type features. Per the Deprecated Database Engine features in SQL Server 2025 page:
Hot Add CPU
This was the feature that let you add CPUs to a SQL Server without restarting the service. It might have been useful back in the day when VMs couldn’t really be hot-scaled, but it’s now deprecated.
Why it matters: Honestly, if you’re running in modern VM environments, you probably didn’t use this. But if you had any automation that relied on runtime CPU scaling, check it.
Lightweight Pooling (Fiber Mode)
The lightweight pooling sp_configure option – and its corresponding fiber mode – is now officially deprecated. This was an old-school option that switched SQL Server from using threads to using fibers for scheduling, with the supposed benefit of reduced context-switch overhead. In practice, it may have caused way more problems than it solved, and truthfully, I don’t know anyone who actually turned it on.
Why it matters: Just make sure lightweight pooling is set to 0 on your instances (which it should be anyway), and you’re good. If you had it enabled, well, now’s the time to turn it off.
SQL Server 2025 also discontinued some of the deprecated features from the previous version. So they’re gone forevermore.
Data Quality Services (DQS)
Deprecated in SQL Server 2019, as mentioned a few paragraphs ago it is now gone. If you’ve got DQS workloads running, you cannot upgrade to SQL Server 2025 without migrating them first.
Master Data Services (MDS)
Also gone. Same deal as DQS.
Synapse Link for SQL
Azure Synapse Link for SQL was the near-real-time analytics replication feature introduced with SQL Server 2022. It created a change feed from your operational database into a Synapse dedicated SQL pool. Well, it’s discontinued in SQL Server 2025, as in “not supported.” This is presumably because Microsoft is steering everyone toward Mirroring in Microsoft Fabric instead.
Why it matters: If you’re on SQL Server 2022 and using Synapse Link, you’ve got a migration to Fabric Mirroring to plan. The good news is for now Fabric Mirroring supports SQL Server 2016+, so you have options even on older versions.
Purview Access Policies (DevOps and Data Owner Policies)
Purview access policies are discontinued in SQL Server 2025. Microsoft is shifting to the fixed server-level roles model (introduced in SQL Server 2022) for this kind of access management. New roles like ##MS_ServerPerformanceStateReader##, ##MS_PerformanceDefinitionReader##, ##MS_ServerSecurityStateReader##, ##MS_SecurityDefinitionReader##, and ##MS_DatabaseConnector## replace the old Purview policy actions.
Why it matters: If you implemented Purview-based access control on your SQL Servers, you need to rework it using the new server roles. That’s probably not a casual afternoon project.
Now what?
That’s a lot of features. Some are rather obscure, so I’m sure you’re wondering whether or not you are using them. I have good news for you! If you want to find out what deprecated features are being used on your SQL Server instances, you have several tools available to help you.
I was going to finish this post by showing you how you could use instance level counters, extended events, and more to identify deprecated features in your SQL Server instance…but Stephen Planck has already written a post that shows you how to do those things to find deprecated features in SQL Server. Do check it out, and take notes.