We wound up in a nasty situation recently where SP2 could not be applied to an instance of SQL Server. After messing around for hours with attempts to rebuild a corrupt master database, with the following startup in Admin-only mode:
sqlservr -c; -m"sqlcmd"; -f; -ServerName\InstanceNameIfNotDefault; -e"C:\path to error logs"
and checking the previous Master restore verifyonly from disk = 'OldMasterB4upgrade.bak' with file = 1
Mount/Insert Installation DVD and type:
Setup.Exe /Action=RebuildDatabase /InstanceName=MSSQLSERVER /SqlSysAdminAccounts=Admin
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]
Now, to the REAL reason we had issues – evaluation edition binaries:
The binary in question is 10.1.2531 and is installed with the SQL 2008 Enterprise Evaluation edition.
The binary for shared components should not be higher than 10.0.xxxx for SQL 2008 in order to be eligible for upgrade.
SQL 2008 evaluation edition binaries binary of 10.50.xxxx (informational only)
The issue could have been circumvented by installing trial software to a non-production environment (yes, duh!). Any trial software installed on a machine meant to be moved to a production environment should have the trial software completely removed prior to installing production software. The Evaluation edition was not intended to be eligible for service pack updates and the SQL shared components are effected during installation.
Besides the obvious 'why the hell is there an Eval install in prod' question, another would be How can the pre-installation check not notice this?
For more reading regarding a Master Database rebuild.