SQL: Restoring a SQL Server 2000 database on SQL Server 2022

You’d think SQL Server 2000 would be long gone by now, but recently I had to restore a SQL Server 2000 database, and get it working on SQL Server 2022.
Now extended support for SQL Server 2000 ended on 9th April 2013.
SQL Server 2000 came in several editions: Enterprise, Standard, Developer, Personal, and the Desktop Engine or MSDE. I’m guessing most people would forget that there was ever a Personal edition. Regardless, this database was from an application that used an embedded database attached to the Desktop Engine or MSDE.
Restore directly?
For most SQL Server databases, you can still just restore them to later versions, even if they are well out of support. But that’s not the case with SQL Server 2000. It’s not just a case of it being unsupported, it just doesn’t work. SQL Server 2022 will restore databases back from SQL Server 2008 onwards.
How to get SQL Server 2008 running
So I set about trying to get SQL Server 2008 running. I managed to download a copy of the Express Edition for SQL Server 2008 from the Visual Studio site, and thought I would be fine.
But no, a challenge with that, is that it won’t install on current operating systems.
I worked out that I should be ok with Windows Server 2012 so again, I downloaded a copy of it from the Visual Studio site, and got it installed in a Hyper-V virtual machine. And once I had that in place, I was able to get SQL Server 2008 Express Edition installed.
The process
I was able to get version 17 of SQL Server Management Studio installed on another system that I connected to the Windows Server 2012 virtual machine. And I could see the SQL Server 2008 Express Edition.
From the original system, I created a backup of the database to a file. I was then able to restore that SQL Server 2000 database backup, bring the database compatibility level to a 2008 level, and then immediately back it up again to a file.
Once I had done that, I was able to restore the new backup to a SQL Server 2022 system.
Thoughts
I understand why Microsoft would not want to support executing against an old database that’s prior to the supported earlier versions, but what I don’t understand is why there isn’t a tool that let’s you just convert an old database backup, to something that can be restored. Clearly, they already had the code to do this.
There must be many people who still need to occasionally restore older databases to current systems, particularly from even later versions like 2005. And this is not a one-off problem, it’s a rolling problem as the supported version levels increase. So it would be good to fix it now.
2025-08-06