Tuesday, May 26, 2009

Performing an Edition Upgrade with SQL 2008

Recently I was working with a customer who had deployed SQL Server 2008 Developer Edition on a production server. Clearly this wasn’t ideal from a licensing perspective, and also developer edition can only use two processing cores (the server had 16).

To perform an edition upgrade, you can use the command line setup.exe with some parameters. Note that you cannot complete an edition upgrade via the installation GUI.

The syntax is as follows:

Setup.exe /q /ACTION=editionupgrade /INSTANCENAME=MSSQLSERVER /PID=<your pid>

Additional information on command-line installation of SQL 2008 can be found in books online:

http://msdn.microsoft.com/en-us/library/ms144259.aspx

It should be noted that when you perform an edition upgrade, it will take SQL Server back to the RTM bare-bones, and any service packs or cumulative updates will be stripped off.

The procedure took about five minutes in total, and after restarting the server for good measure, select @@version returns the correct edition.

Complications

There is a reasonably good chance that the build I started out with was not 100% kosher, but I hit a serious problem when attempting to apply SQL 2008 SP1. I came across very few references to this error on the internet.

Summary.txt didn’t reveal much further information, other than to say that a previous operation was not completed. Reinstalling the components listed did not help the situation either.


To summarise, the upgrade path on this server was fairly un-conventional. After being unable to apply SP1, it was decided to uninstall SQL Server completely and start again with a fresh install. I would be interested to hear if anybody else has tried this particular migration path with SQL Server 2008, as I am unable to say whether the SP1 error was a result of the server being in an unknown state when I started working on it, or if the upgrade path shown below is indeed problematic. Perhaps there is a problem with the Edition Upgrade technique? Hard to say at this point