Older database migrating to a newer database with a checklist and a shield representing a SQL Server upgrade

SQL Server 2025 Upgrade Guide: Upgrade Paths, Breaking Changes and a Step-by-Step Plan

How to move to SQL Server 2025 safely: supported upgrade paths, the changes that break upgrades, in-place vs. side-by-side, why rollback needs the old server, and a step-by-step plan.

September 17, 2026

Short answer

You can upgrade in place to SQL Server 2025 only from SQL Server 2014 SP3 or later, 2016 SP3 or later, 2017, 2019 or 2022, on Windows Server 2019 or later; older versions must migrate. For production we recommend a side-by-side migration, because no SQL Server backup can be restored on an earlier version than the one that created it. Keep the old compatibility level first, then raise it.

Upgrading SQL Server is rarely difficult because of the setup wizard. It becomes difficult because of everything around the database engine: the applications and drivers that connect to it, the server-level objects that live outside the user databases, the query plans that change under a new optimizer, the high availability topology and, above all, the fact that an upgraded database can’t be taken back to an older version. Most failed upgrades fail on one of these, not on the installation itself.

This guide covers which versions can move to SQL Server 2025 and how, the changes in SQL Server 2025 that most often break existing environments, how to choose between an in-place upgrade and a side-by-side migration, and a step-by-step plan from assessment to post-upgrade tuning.

SQL Server Upgrade Assessment

Let's plan your SQL Server upgrade together

Aryasoft reviews your environment, application dependencies and HA/DR design to plan a controlled upgrade or migration with a real rollback path.

Request an Upgrade Assessment

Quick Decision Table: Which Upgrade Route Fits?

Your situation Method Target version Compatibility level Rollback
Dev/test or non-critical server on SQL Server 2017, 2019 or 2022, Windows Server 2019 or later, downtime acceptable In-place upgrade with Setup SQL Server 2025 Keep the existing level first; raise to 170 after a Query Store baseline. Difficult: rebuild the old version and restore pre-upgrade backups. Setup overwrites the old instance.
Production server, any supported source version Side-by-side migration (backup/restore, log shipping or availability group) SQL Server 2025 on a new or rebuilt server Keep the existing level first; raise per database. Simple until cutover: the old server stays untouched. Data written after cutover needs its own way back.
SQL Server 2014 SP3 or 2016 SP3 on a supported OS In-place is supported; side-by-side recommended for production SQL Server 2025 Existing level (120 / 130) is kept on upgrade. As above, depending on the method.
SQL Server 2012 or older, or Windows Server 2016 and older Migration only (new server or rebuilt OS) SQL Server 2025 Databases at level 90 are raised to 100; 100 and higher stay unchanged. Old server stays available until you retire it.
Availability group or failover cluster Rolling upgrade: secondaries first, fail over to an upgraded synchronous secondary, primary last SQL Server 2025 Our recommendation: leave the level unchanged until every replica is upgraded. Point of no return once an upgraded replica becomes primary: older replicas cannot take over again.
Web edition, DQS, MDS, Synapse Link or Purview policies in use Plan before choosing a route Web edition upgrades to Standard or Enterprise; DQS and MDS stay on an older version Not applicable Keep the old instance for workloads that cannot move.

Tested-Version Notes

Last verified: 19 October 2026. Every claim below was read on Microsoft Learn on this date. T-SQL tested on SQL Server 2025 (build 17.0.4055.5).

Item Applies to Note
In-place upgrade sources SQL Server 2025 (17.x) From SQL Server 2014 SP3 or later, 2016 SP3 or later, 2017, 2019 and 2022. Web edition is not available in SQL Server 2025.
Migration by restore or attach SQL Server 2025 (17.x) Source database compatibility level must be 90 or higher. Level 90 becomes 100; level 100 and higher are unchanged.
Operating system and .NET SQL Server 2025 (17.x) Windows Server 2019 or later (or Windows 10 or later); .NET Framework 4.7.2.
Compatibility level 170 SQL Server 2025 (17.x) The highest level available in SQL Server 2025.
Backups and older versions All SQL Server versions No SQL Server backup can be restored to an earlier version than the version it was created on.
Log shipping into SQL Server 2025 SQL Server 2025 as secondary Primary on SQL Server 2008 SP3 / 2008 R2 SP2 or later. If the 2025 instance becomes primary, the old secondary can no longer receive changes.
Rolling AG upgrade order Version upgrades of Always On availability groups Remote secondaries first, then local secondaries, primary last; remove automatic failover on synchronous replicas first; fail over only to a SYNCHRONIZED synchronous-commit secondary.
Support dates and ESU SQL Server 2014 to 2022 End-of-extended-support dates from the Microsoft Lifecycle pages. ESU protects servers for up to three years after support ends and delivers fixes for issues rated Critical.

Where Does Your Version Stand?

The urgency of an upgrade depends largely on where the current version sits in Microsoft’s support lifecycle. Once extended support ends, a version receives no security fixes unless you buy Extended Security Updates (ESU), which cover only critical security updates for up to three years.

Version End of extended support Status Path to SQL Server 2025
SQL Server 2012 July 12, 2022 Out of support Migration only
SQL Server 2014 July 9, 2024 ESU available until July 2027 In-place from SP3 or migration
SQL Server 2016 July 14, 2026 ESU available until July 2029 In-place from SP3 or migration
SQL Server 2017 October 12, 2027 Extended support In-place or migration
SQL Server 2019 January 8, 2030 Extended support In-place or migration
SQL Server 2022 January 11, 2033 Supported In-place or migration

Microsoft supports an in-place upgrade to SQL Server 2025 from SQL Server 2014 SP3 or later, 2016 SP3 or later, 2017, 2019 and 2022. Older versions can’t be upgraded in place, but their databases can be migrated: any database with compatibility level 90 or higher can be restored or attached to SQL Server 2025, and level 90 databases are raised to 100 automatically.

To find out exactly what you’re running, check the version, edition and build on every instance:

SELECT
    SERVERPROPERTY('ServerName')     AS server_name,
    SERVERPROPERTY('ProductVersion') AS build,
    SERVERPROPERTY('ProductLevel')   AS service_pack,
    SERVERPROPERTY('ProductUpdateLevel') AS cumulative_update,
    SERVERPROPERTY('Edition')        AS edition;

SELECT name, compatibility_level, recovery_model_desc, state_desc
FROM sys.databases
ORDER BY name;

What Changes in SQL Server 2025 That Can Break an Upgrade

Every release has its own list of removed features and changed defaults. These are the ones in SQL Server 2025 that most often surprise teams during an upgrade:

Change Impact
Operating system: Windows Server 2019 or later, .NET Framework 4.7.2 Instances on Windows Server 2016 or older can’t be upgraded in place; the server itself must be replaced or rebuilt first.
Setup installs ODBC Driver 18 and OLE DB Driver 19, which encrypt connections by default Linked servers and other outbound connections can fail if the remote server doesn’t present a trusted certificate. See our linked server guide for the fix.
Reporting Services is consolidated under Power BI Report Server There is no SSRS 2025. Existing RDL reports run on Power BI Report Server, but the report server needs its own migration plan.
Data Quality Services and Master Data Services removed Instances that use DQS or MDS can’t simply be upgraded; these workloads must stay on an older version or be replaced.
Synapse Link and Purview access policies discontinued Replace Synapse Link with Mirroring in Microsoft Fabric, and Purview policies with the fixed server-level roles introduced in SQL Server 2022.
Web edition no longer exists Web edition upgrades to Standard or Enterprise, which changes licensing. Our SQL Server 2025 licensing guide covers the options.

Beyond these, check how much your applications still use deprecated features. SQL Server counts every use since the instance started:

SELECT instance_name AS deprecated_feature, cntr_value AS usage_count
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Deprecated Features%'
  AND cntr_value > 0
ORDER BY cntr_value DESC;

For a complete assessment of breaking changes, behavior changes and deprecated features, Microsoft now offers the SQL Server migration component in SQL Server Management Studio.

In-Place Upgrade or Side-by-Side Migration?

Criteria In-place upgrade Side-by-side migration
Rollback Difficult: requires rebuilding the old version and restoring pre-upgrade backups Simple: the old server stays untouched until cutover is confirmed
Downtime For the entire setup run Only the final cutover; can be minutes with log shipping or availability groups
Operating system and hardware Stay the same, and must already meet the new version’s requirements Can be renewed and right-sized at the same time
Testing Only on a separate copy of the environment The real target server can be tested before go-live
Server names and connections Unchanged Need DNS aliases, listeners or connection string changes

Critical

An upgrade is one-way. Once a database has been opened on SQL Server 2025, it can’t be restored or attached to an older version, and backups taken on the new version can’t be restored on the old one. A rollback plan therefore means keeping the old environment intact and knowing in advance how data written after cutover would be carried back, not “restore last night’s backup on the old server”.

For production systems, we generally recommend side-by-side migration. It costs a second server for the duration of the project, but it turns rollback into a decision rather than a reconstruction, and it lets you renew the operating system and right-size the hardware at the same time.

Moving the Data with Minimal Downtime

  • Backup and restore: the simplest method; downtime equals the time to take and restore a final backup. Suitable for small databases or generous maintenance windows.
  • Log shipping: restore a full backup in advance, keep applying log backups, and at cutover apply only the last one. Supported from SQL Server 2008 SP3 and 2008 R2 SP2 as the source. It reduces downtime to minutes and works on Standard edition.
  • Availability groups: for environments already on availability groups, add a SQL Server 2025 replica, let it synchronize, then fail over. Once the new version becomes primary, older replicas can’t take over again, so this step is the point of no return.

Objects That Live Outside the User Databases

In a side-by-side migration, moving the user databases is the easy part. A surprising amount of what makes an instance work lives in master, msdb and the server itself, and none of it travels with a database backup. Inventory and script everything below before the migration, and check it off on the new server:

Area What to move Watch out for
User databases Every user database Leave support databases such as ReportServerTempDB out; report server databases move only as part of the reporting migration
Security Logins (with original SIDs and password hashes, default database and server role memberships), user-defined server roles, credentials Different SIDs leave database users orphaned after the restore
Certificates and keys Service and database master keys, certificates protecting TDE and backup encryption Without the certificate, a TDE database can’t be restored at all
SQL Server Agent Jobs, schedules, job categories, operators, alerts, proxies Jobs that point to old server names, file paths or shares
Connectivity Linked servers and their login mappings, endpoints (availability group, mirroring, custom TDS) SSMS doesn’t script linked server passwords; collect them before cutover
Database Mail Profiles, accounts and mail configuration The SMTP relay must accept mail from the new server’s IP
Configuration All sp_configure settings, trace flags and startup parameters Copy deliberately; re-check memory and MAXDOP for the new hardware
System databases User objects created in master, msdb or model, such as maintenance procedures and helper tables Often undocumented and only found when a job fails
Server objects Server-level triggers, backup devices, custom error messages (sp_addmessage), startup procedures (sp_procoption), custom extended stored procedures and their DLLs Logon triggers that reference old objects can lock everyone out
Auditing and monitoring Server audits, server audit specifications, Extended Events sessions, Data Collector collection sets Audit file paths and permissions on the new server
Governance Policy-Based Management policies and conditions, Resource Governor pools, workload groups and classifier function The classifier function lives in master and must exist before Resource Governor is enabled
Management Central Management Server groups and registered servers Stored in msdb of the CMS instance
Integration Services SSIS catalog (SSISDB) folders, projects, environments and its master key Restoring SSISDB needs the catalog master key password

Most of these objects can be scripted with SSMS or T-SQL, and open-source PowerShell tooling such as the dbatools module can copy many of them in one pass. Whatever you use, compare the object counts on both servers after cutover rather than assuming the copy was complete.

Warning

A TDE-encrypted database can’t be restored on the new server without the certificate that protects its encryption key. Back up the certificate and its private key, restore them on the target and test a restore well before the cutover night.

If You Build a New Server: Infrastructure Checks

A side-by-side migration means a new machine, and a new machine fails in ways that have nothing to do with SQL Server. Check these before the cutover weekend, not during it.

Active Directory, OU and Group Policy

  • Create the new computer object in the same OU as the old database servers, or in the OU your database servers are meant to be in, so the same Group Policies apply.
  • Confirm the policies have actually been applied to the new machine (gpresult /r or gpresult /h report.html): security baseline, firewall rules, local administrators, audit policy, update policy.
  • Check the user rights the SQL Server service account needs, often granted by GPO: Perform volume maintenance tasks for instant file initialization and Lock pages in memory where it’s used. A GPO that applies to the old OU but not the new one silently removes them.
  • Register SPNs for the new server name and service account so Kerberos keeps working, and recreate any delegation settings that linked servers or reporting depend on.

Network permissions

  • Firewall rules from every application server, reporting tool and ETL server to the new server: SQL port, listener port and, for availability groups, the endpoint port (5022 by default).
  • Access from the new server to everything it calls: backup shares (with write permission for the service account), linked server targets, SMTP relay, file shares used by jobs and SSIS, monitoring and backup software.
  • DNS: aliases or CNAMEs that applications use, and their TTL, so the cutover is a DNS change rather than a configuration change in every application.
  • Network segmentation and VLAN membership matching the old server, including any rules that keep the database server off the internet.

Comparable compute power

  • Make sure the new server has at least comparable compute power to the old one: core count, per-core clock speed, memory and storage latency. A server with more cores but a lower clock speed can make single-threaded work, such as many OLTP queries and serial batch jobs, slower.
  • Check the edition’s core limit and the VM’s socket layout, so SQL Server can use every core you give it; see how many CPU cores SQL Server can use.
  • Set the Windows power plan to High performance and check the BIOS or hypervisor power profile.
  • Compare the baseline from the old server (CPU, wait statistics, per-file I/O latency, durations of key jobs and reports) with the same workload on the new server before cutover.

Warning

A new server that is “bigger” on paper can still be slower in practice. Lower clock speeds, a different storage tier, an unapplied GPO or a missing user right are the most common reasons a migration ends with users saying the new system is slower than the old one.

Compatibility Level and Query Performance

Upgrading the engine and raising a database’s compatibility level are two separate decisions. A restored or upgraded database keeps its compatibility level, so it keeps most of the old query optimizer behavior even on the new engine. That’s deliberate: it lets you separate the risk of the upgrade from the risk of plan changes.

A controlled sequence looks like this:

  1. Before the upgrade, capture a performance baseline: CPU, waits, duration and reads of the most important queries.
  2. Upgrade with the existing compatibility level and confirm the applications work.
  3. Make sure Query Store is enabled and collect a representative period of workload.
  4. Raise the compatibility level, preferably one database at a time.
  5. Use Query Store to compare plans and force the previous plan for any query that regresses, then fix the underlying cause.
ALTER DATABASE [SalesDB] SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE);

-- After collecting a baseline on the old compatibility level:
ALTER DATABASE [SalesDB] SET COMPATIBILITY_LEVEL = 170;  -- SQL Server 2025

We explain how compatibility levels influence the optimizer in our compatibility level article.

Upgrading Always On and Failover Cluster Environments

For availability groups and failover cluster instances, the order of operations matters more than the setup itself. In an availability group, upgrade the secondary replicas first, fail over to an upgraded synchronous secondary, then upgrade the former primary. Remove automatic failover while replicas run different versions, and confirm synchronization before every failover. The step-by-step procedure is the same rolling approach we describe in our Always On patching guide.

Official Behavior, Aryasoft Field Notes and Our Recommendation

Topic Official behavior (Microsoft) Aryasoft field note Our recommendation
Rollback In-place Setup replaces the old instance, which no longer exists afterwards, and falling back takes longer. No backup can be restored to an earlier version. Rollback plans that rely on restoring last night’s backup on the old server are a mistake we list under Common Mistakes. No incident statistics are published here. Keep the old environment intact and decide in advance how data written after cutover would be carried back.
In-place vs new installation In-place is the easiest and needs downtime; a new installation reduces risk and downtime and lets you change hardware and OS at the same time. A server that looks bigger on paper can still be slower: lower clock speed, a different storage tier, an unapplied GPO or a missing user right are the reasons we meet most often. This is experience, not a measured percentage. Use side-by-side for production; compare the old server’s baseline with the new one before cutover.
Objects outside user databases Logins, Agent jobs and server-level triggers live in master and msdb; attaching or restoring a database does not bring them. These objects are often undocumented and only found when a job fails. Inventory and script them first, then compare object counts on both servers after cutover.
Compatibility level Upgrading the engine can keep the pre-upgrade compatibility level, so applications see the same functional behavior. No Aryasoft benchmark is published in this article. Capture a baseline, enable Query Store, raise the level per database and force the earlier plan where a query regresses.
Availability groups Upgrade secondaries first and the primary last; never fail over to an asynchronous replica during the upgrade. Not covered by data in this article. Follow the rolling procedure and treat the first failover to the new version as the point of no return.

A Step-by-Step Upgrade Plan

  1. Inventory: instances, versions and builds, databases and compatibility levels, server-level objects, applications and their drivers.
  2. Assessment: supported upgrade path, operating system, removed and deprecated features, third-party application support statements.
  3. Method and target: in-place or side-by-side, target edition and sizing, data movement method.
  4. Test environment: restore production databases on the target version and run application, integration and performance tests.
  5. Cutover and rollback plan: a timed runbook, a go/no-go decision point and the conditions that trigger rollback.
  6. Upgrade or migration according to the runbook.
  7. Validation: applications, Agent jobs, integrations, security, backups and HA/DR.
  8. Stabilization: monitor against the baseline, raise compatibility levels in a controlled way and tune regressions.

Common Mistakes

  • Assuming a rollback is possible by restoring a backup on the old version.
  • Migrating user databases but forgetting logins, jobs, linked servers or certificates.
  • Upgrading without checking the operating system and driver changes.
  • Raising the compatibility level on the same night as the upgrade, without a baseline.
  • Treating availability groups and failover clusters like standalone instances.
  • Starting the project weeks before support ends instead of months.
  • Choosing a build with known critical issues on the target instead of a well-established cumulative update.

SQL Server Upgrade Checklist

  • Have the current version, edition and build of every instance been identified?
  • Is the source on a supported upgrade path, or does it require migration?
  • Does the operating system meet SQL Server 2025’s requirements?
  • Are DQS, MDS, Synapse Link, Purview policies or Web edition in use?
  • Have the effects of the new driver encryption defaults on linked servers been tested?
  • Do third-party vendors support the application on SQL Server 2025?
  • Has every server-level object been inventoried and scripted?
  • Is the new computer object in the right OU, and have the Group Policies and user rights been applied to it?
  • Are firewall rules, share permissions, SMTP relay, SPNs and DNS aliases in place for the new server?
  • Does the new server have comparable compute power, including per-core clock speed and storage latency?
  • Are TDE and backup encryption certificates backed up and tested on the target?
  • Has a performance baseline been captured and is Query Store enabled?
  • Is there a timed cutover runbook with a clear go/no-go point?
  • Does the rollback plan keep the old environment intact?
  • Has the HA/DR topology been tested after the upgrade?
Microsoft supports in-place upgrades to SQL Server 2025 from SQL Server 2014 SP3 or later, 2016 SP3 or later, 2017, 2019 and 2022. Older versions can’t be upgraded in place, but their databases can be migrated if their compatibility level is 90 or higher.
Not in place. You need to install SQL Server 2025 on a new or rebuilt server and migrate the databases with backup and restore, log shipping or another data movement method, together with logins, jobs and other server-level objects.
Not by restoring the upgraded database on the old version: an upgraded database and backups taken on the new version can’t be restored on an older version. A real rollback plan keeps the old environment intact during a side-by-side migration and defines how changes made after cutover would be handled.
Usually not. Keep the existing compatibility level first, confirm the application works, collect a baseline in Query Store and then raise the level in a controlled way, so any plan regressions can be identified and corrected.
There is no SSRS 2025. On-premises reporting is consolidated under Power BI Report Server, which runs existing RDL reports and is available to SQL Server 2025 Enterprise and Standard customers. SSRS 2022 remains supported until January 11, 2033.
No. Microsoft supports in-place upgrade only from SQL Server 2014 SP3 or later and 2016 SP3 or later. Apply the service pack first, or migrate the databases to a new SQL Server 2025 instance.
Not by itself. Upgraded or restored databases keep their compatibility level, except that level 90 is raised to 100. Raising it to 170, the SQL Server 2025 level, is a separate step you take after you have a Query Store baseline.
Check the operating system (Windows Server 2019 or later), .NET Framework 4.7.2, a pending restart or a stopped Windows Installer service, which both block the upgrade, and that the SQL Server Agent service account is a member of sysadmin. Also confirm that you do not use DQS, MDS, Synapse Link or Purview policies, and back up everything first.

Sources (Microsoft Learn)

Technical claims in this guide were checked against these primary sources on 19 October 2026. Microsoft can change documentation at any time, so re-check version-specific details before a production change.

SQL Server Upgrade Assessment

Move to SQL Server 2025 with a plan you can roll back

Aryasoft’s senior DBA team assesses your environment, designs a side-by-side migration with a real rollback path, moves every server-level object, runs the cutover and stays with you through post-upgrade performance tuning.

4.7/5