SQL Server Upgrade: In-Place or New Server?

This isn’t a religious debate.

I have a client right now debating how to handle SQL Server upgrades across all of their dev and test environments.

And it’s a good conversation, because the same logic people use for dev and test is often what sneaks into production later.

There are two paths. Both can work. Both can fail, but in very different ways.

Option 1: In-Place Upgrade

An in-place upgrade modifies the existing SQL Server instance where it sits.

Why some people choose it

  • It’s “fast”.

  • No application changes.

  • No database backup / restore

  • No DNS, aliases, or firewall conversations.

  • Lower short-term cost.

For dev and test, that simplicity is tempting.

The risk profile

Once SQL Server upgrades its system databases, you don’t roll back with a checkbox.

If something goes wrong late in the process, your options narrow quickly:

  • restore system databases

  • restore user databases

  • or rebuild and recover

Downtime tends to be “whatever it takes,” not “whatever you planned.”

The safety net you must have

An in-place upgrade should never rely on SQL backups alone.

You need two rollback paths:

Platform-level rollback

  • VM snapshot or full image backup taken immediately before the upgrade

  • Snapshot verified

  • Snapshot removed after validation (don’t leave them lingering)

SQL-level rollback

  • Full backups of all user databases

  • Backups of master, msdb, and model

  • Certificates and encryption keys if applicable

Add a captured baseline and a written stop/go decision, or you’re flying blind.

When in-place makes sense

  • Dev and test systems

  • Simple, single-instance servers

  • Environments where rebuild is acceptable

  • Tight timelines with known risk tolerance

Option 2: New Server + Migration

  • This means building a new server and moving data and workloads over.

Why teams choose this

  • Rollback is simple: point applications back.

  • You can test without pressure.

  • You can fix long-standing issues instead of inheriting them.

  • OS, SQL, and configuration changes are cleaner.

This approach favors control over speed.

The tradeoffs

  • You take on more coordination:

  • logins and permissions

  • SQL Agent jobs

  • linked servers and credentials

  • application connection routing

  • Missed “things” or rarely used features.

And data movement takes time - there’s no way around physics, but there are ways to mitigate this for short cutover windows.

Failures tend to be quieter and easier to reverse.

How to decide

If speed and simplicity matter most, in-place is attractive.
If rollback certainty and testing matter more, migration wins.

That’s why dev and test often lean towards in-place. Production should pause before copying that decision.

The first 24 hours matter

No matter which path you take:

  • watch agent jobs

  • watch error logs

  • confirm backups are running

  • validate real business workflows

  • compare performance to your baseline

Most upgrade failures don’t happen during setup.
They happen after users return.

The Bottom Line

If you don’t have a tested rollback plan, you don’t have an upgrade strategy.

Dev and test decisions shape production thinking, whether you intend them to or not.

Choose based on risk, not convenience.

 

SQL Tidbit:

For new server migrations, log shipping is a great way to move databases, especially if you are moving Terabytes of data.

Don’t let SQL Server make you miss your kid’s piano recital!
First month free for new clients

Upgrade SQL Server to the latest version – Advice from the mothership 

Please share this with anyone that is about to “in-place” a production server!

Reply

or to participate.