PRB: Windows Installer starts in Repair mode when you try to remove an instance of SQL Server 2000 on a computer that has an instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) (823519)



The information in this article applies to:

  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE)
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition

Bug #: 469759 (SQL Server 8.0)
SQL Server 8.0:469759
Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

SYMPTOMS

When you try to remove the last existing instance of Microsoft SQL Server 2000 from a computer that is running one or more instances of SQL Server Desktop Engine (also known as MSDE 2000) or SQL Server Desktop Engine (Windows), Microsoft Windows Installer starts. When the SQL Server removal process is in progress, Windows Installer repairs the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows). You may receive the following error message:
Setup has detected that unInstallShield is in use. Please close unInstallShield and restart setup.
Error 432.
After the removal process is completed, the Add or Remove Programs tool displays the SQL Server Desktop Engine instance name or the Microsoft SQL Server Desktop Engine (Windows) instance name as Microsoft SQL Server Desktop Engine (Instance Name) (Instance Name). The instance name is repeated in the Add or Remove Programs tool.

Additionally, you may receive one or more error messages that are similar to the following in the event log:
Detection of product '{B7CF8A67-FEE5-4A41-9767-BAE0D90A732B}', feature 'SqlRun', component '{A8B1BC07-DE70-4C41-B951-3C6C11E5F99C}' failed. The resource 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\Service Manager\Services' does not exist.
For more information, see Help and Support Center at http://support.microsoft.com
Note This problem also occurs in instances of SQL Server 2000 that were upgraded from SQL Server Desktop Engine or from SQL Server Desktop Engine (Windows). This problem also occurs with the following SQL Server 2000 service packs:
  • SQL Server 2000 Service Pack 1 (SP1)
  • SQL Server 2000 SP2
  • SQL Server 2000 SP3
  • SQL Server 2000 SP3a

CAUSE

When you remove the last existing instance of SQL Server 2000 on a computer, the removal process removes registry entries that are shared by instances of SQL Server Desktop Engine and instances of SQL Server Desktop Engine (Windows). Windows Installer is started in Repair mode for the most recently installed instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).

WORKAROUND

To work around this problem, follow these steps before you remove the last existing instance of SQL Server 2000 from the computer that is running one or more instances of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
  1. Click Start, and then click Run.
  2. In the Run dialog box, type regedit in the Open box.
  3. Click OK.
  4. In Registry Editor, check the value of the following registry key:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\Tracking\{E07FDDA8-5A21-11d2-9DAD-00C04F79D434}

  5. If the value of the registry key in step 4 is set to 1, change the value to 2.

    Note This step prevents the following registry tree from being removed:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\Service Manager

  6. Back up the following registry key by using the Export option:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\TCP\DefaultPort

  7. In Control Panel, double-click Add or Remove Programs, and then remove the instance of SQL Server.
  8. In Registry Editor, use the Import option to restore the registry key that you backed up in step 6.
  9. Delete the following registry trees:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\MSSQLLicenseInfo
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Registration
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\SQLEW
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\HELP
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\Tracking
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Replication\MergeReplicationProvider\MSJet
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\NP

    Note The instances of SQL Server Desktop Engine and SQL Server Desktop Engine (Windows) do not require these registry trees.
  10. Delete the following registry keys:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\CurrentVersion\Language
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect\SQL Server\Instance

    Note The instances of SQL Server Desktop Engine and SQL Server Desktop Engine (Windows) do not require these registry keys.
If you remove an instance of SQL Server without using the previous workaround and the problems that are described in the "Symptoms" section of this article occur, follow these steps:
  1. Detach the user databases from the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).
  2. Remove the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows)

    Note If the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) was installed by an independent software vendor (ISV) product or by a Microsoft Windows Server 2003 operating system component, the name of the ISV product or the Windows Server 2003 operating system component can be identified by the named instance name. For example, the instance of SQL Server Desktop Engine (Windows) that was installed by the Universal Description, Discovery, and Integration (UDDI) Services component in Windows Server 2003 is named Microsoft SQL Server Desktop Engine (UDDI).

    If the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) was installed by an ISV product or by a Windows Server 2003 operating system component, see the documentation for the ISV product or for the Windows Server 2003 operating system component to determine the correct steps to remove SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) components. Additionally, you may have to contact the software vendor for more information.
  3. Install a new instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).

    Note If the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) was previously installed by an ISV product or by a Windows Server 2003 operating system component, see the documentation for the ISV product or for the Windows Server 2003 operating system component to determine the correct steps to install SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) components. Additionally, you may have to contact the software vendor for more information.
  4. Attach the user databases that you detached in step 1 to the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).

MORE INFORMATION

The removal process for SQL Server 2000 does not recognize the instances of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) when it checks for other instances of SQL Server on the computer. Therefore, when you remove the last existing instance of SQL Server from a computer, the removal process prematurely removes the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\Service Manager

This registry key is shared by other instances of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) on the computer. When the removal process removes this registry key, Windows Installer starts in Repair mode to repair the most recently installed instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows).

The repair process runs in a standard Windows Installer dialog box that is similar to the installation of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows). After this process is complete, the repair process incorrectly modifies the instance name of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) in the Add or Remove Programs tool. The repair process leaves the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) in an unknown state, although it may seem usable. In this situation, remove and then reinstall the instance of SQL Server Desktop Engine or SQL Server Desktop Engine (Windows) by using the workaround in the "Workaround" section of this article.

REFERENCES

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

311762 INF: How to identify which MSI file was used for an existing MSDE installation

317619 FIX: Cannot remove Microsoft SQL Server 2000 Desktop Engine after you upgrade to MSDE 2000 SP2

224071 INF: Moving SQL Server databases to a new location with Detach/Attach



For additional information about SQL Server client network configurations, visit the following Microsoft Web site:

Modification Type:MajorLast Reviewed:9/22/2006
Keywords:kbMessageBox kbEventLog kbwizard kberrmsg kbDatabase kbSysAdmin kbprb KB823519 kbAudDeveloper