If you ask for my opinion on Windows Installer, I’d have to think what polite words to use. But almost every Microsoft product uses it, and that includes SQL Server. So we are stuck with it and have to live with it for now and for the forseeable future.
One of major problems with Windows Installer is that its install packages can be so complex that it sometimes confuses the heck out of the Installer. I don’t know about you, but I have run into enough install/patch problems, and wasted countless number of hours when a SQL Server edition, version, or hotfix simply refuses to install and spits out strange error messages that turn out to have nothing to do with the real problems. Trying to fix these installer problems is like performing brain surgery on yourself—the chance of success is just not very high, at least judging from my own experience and even with help from the Microsoft support engineers.
Now, there are times when you can afford to obliterate an installed product, or whatever remains in its mangled state, and those are times you may find msizap.exe extremely useful and can save you tons of grief.
What msizap.exe can do for you is to wipe the slate clean by removing the file and registry settings that make up the Windows Installer configuration information for an installed product. Note that it removes the file and registry settings, not the files and registry keys themselves. If there are files of the product left in the file system, and registry keys/values left in the registry, you would have to delete them yourself.
Now, msizap.exe can be a very dangerous tool to use because it basically pulls the carpet from underneath a product. And you have to be really careful not to apply it to a wrong product. In addition, msizap.exe is not exactly intuitive to use as you need to deal with the product codes, which are GUID strings.
Fortunately, Microsoft has a more user friendly tool on top of msizap.exe. This more user friendly tool is called Windows Installer CleanUp Utility. You can find it easily via Google or in this KB article. When you launch this Installer CleanUp utility, it’ll automatically search the msi database, and list all the product names and their corresponding product codes for you to select. Then, you can simply select the product(s) whose msi configuration information you want to zap. And that’s all you need to do! Once the slate is wipted clean, the chance of the product install goes through becomes very high.
The msizap.exe utility has saved me in several occasions, and I'm sure you’d be thankful that you have msizap.exe around should you run into a similar situation.