The Horror: Uninstalling SQL Server 2008 R2 and his friends

It's common knowledge that even though Microsoft claims it's possible to have multiple versions of SQL Server Express side by side, that's generally considered a bad idea. So I set out to remove every trace of SQL Server in order to later install the latest R2 version.

After many visits to Control Panel->Add or Remove Programs, in which I removed anything which had SQL Server in its name, four (4) creatures were left standing:

  • Microsoft SQL Server 2008
  • Microsoft SQL Server 2008 Setup Files
  • Microsoft SQL Server 2008 R2
  • Microsoft SQL Server 2008 R2 Setup Files

If I tried to remove the setup files, I was told that I had to remove 2008 or 2008 R2 before. If I tried removing one of those, after running the whooooooole process without a hitch, the entry was still there. On a closer examination, R2 was always saying it was going to delete Microsoft Sync Framework, but it didn't do so (silently). So I tried nuking the sync framework myself, but then I was warned that many programs needed it, including Visual Studio 2010. Since I use that every day, I ran away in terror.

At this point, I realized I should have followed some guide when nuking the various SQL components and helper. But it was too late, so I decided to destroy all traces of SQL Server with a vengeance. This implied deleting the whole C:\Program Files\Microsoft SQL Server directory, and deleting every registry key associated, as explained in the answer to this question on Social MSDN.

But even after all that, there were still three entries on Add or Remove Programs (2008 Common Files, 2008 and some other I don't remember). After another long and fruitless look at the registry, I stumbled upon a Microsoft Fixit that saved my life..

After running it thrice, once per zombie entry, every trace of SQL had seemingly vanished. Then, I ran the SQL Server 2008 R2 installer, and I got several errors. But then I just ran the uninstaller from Add or Remove Programs and tried again, as suggested in this post. And I finally succeeded.

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x