Microsoft KB Archive/236989

= BUG: Uninstalling SQL 6.5 After Upgrade to 7.0 May Remove 7.0 Data Files =

Article ID: 236989

Article Last Modified on 10/17/2003

-

APPLIES TO


 * Microsoft SQL Server 7.0 Standard Edition
 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q236989



BUG #: 56101 (SQLBUG_70)



SYMPTOMS
Uninstalling SQL Server 6.5 or 6.0, after an upgrade to SQL Server 7.0, may remove some SQL Server 7.0 data files if they are located in the SQL Server 6.5 directory.

After uninstalling SQL Server 6.5 and restarting SQL Server 7.0, you may see errors 5105, 17207, or 17204 in the SQL Server 7.0 errorlog:

FCB::Open failed: Could not open device C:\MSSQL\65data\db1.mdf for virtual device number (VDN) 1.

kernel udopen: Operating system error 2(The system cannot find the file specified.) during the creation/opening of physical device C:\MSSQL\65data\db1.mdf.

File C:\MSSQL\65data\db1.ldf does not exist - unable to activate.

Device activation error. The physical file name 'C:\MSSQL\65data\db1.ldf' may be incorrect.

When trying to access the database, you may encounter error 945:

Database 'db1' cannot be opened because some of the files could not be activated.



CAUSE
The default location for upgraded SQL Server 7.0 user data and log files is the same place the original SQL Server 6.5 device files are located, unless the SQL Server 6.5 devices are in the MSSQL\DATA directory. The Uninstall SQL 6.5 utility deletes all files in the SQL 6.5 installation directory, which may include upgraded SQL 7.0 data files.

Note that SQL Server 6.5 devices placed in the default location (MSSQL\DATA) are not subject to this problem since the location for these files changes to MSSQL7\DATA when they are upgraded. However, if there are SQL Server 6.5 device files in other subdirectories of the MSSQL directory ("C:\MSSQL\65DATA\", for example) the problem may also occur.



WORKAROUND
If you have SQL Server 7.0 data files in the SQL Server 6.5 MSSQL directory, do not select Yes when you receive the prompt "Are you sure you want to remove everything in 'C:\MSSQL' and all of its subdirectories?".

Either of the following two workarounds allows you to remove SQL Server 6.5 without affecting the SQL Server 7.0 data files:  Upgrade normally. After the upgrade, detach any databases that have files in the SQL Server 6.5 directory and move all SQL Server 7.0 .MDF/.NDF/.LDF files out of the MSSQL directory. Reattach the files from a different location before removing SQL Server 6.5. In the Upgrade Wizard, modify the file layout so that the data files are not placed in the SQL 6.5 MSSQL directory. To change the file layout, click Edit in the Database Creation step of the Upgrade Wizard. If this is the workaround you select, refer to the following Microsoft Knowledge Base article prior to running the upgrade:

200118 FIX: Adding Database Files During Upgrade May Cause Errors





STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.



MORE INFORMATION
On a computer that has only SQL Server 6.5 installed, you can remove SQL 6.5 by running the SQL Setup from the "Microsoft SQL Server 6.5" program group. After installing SQL Server 7.0 on a computer with SQL Server 6.5 installed, the SQL Server 6.5 setup program is no longer accessible. To uninstall SQL Server 6.5 after installing SQL Server 7.0, you must run "Uninstall SQL Server 6.x" from the "Microsoft SQL Server - Switch" program group.