© Copyright Microsoft Corporation, 2004. All rights reserved.
The SQL Server documentation team cannot answer technical support questions, but welcomes your suggestions and comments about this readme documentation. You can quickly and directly send e-mail feedback using the link below. Please submit your feedback in English.
To submit written feedback about this document, click here: Submit feedback.
1.0 Introduction
1.2 Before You Upgrade to MSDE 2000 SP4
1.3 Security Considerations for MSDE 2000 SP4
1.4 Determine the Instance Name
1.5 Verify the Version of Microsoft Data Access Components
1.6 Identify the Current Version of MSDE 2000
1.7 Additional Information About SP4
1.8 Updates to SQL Server 2000 Books Online Are Available
2.0 Where to Find and Download MSDE 2000 SP4
2.1 Choosing the Correct Language
2.3 Extracting the MSDE 2000 SP4 Files
2.4 Download and Extraction Phase Guidelines
3.1 Prepare for MSDE 2000 SP4 Installation
3.3 Restart Services and Applications
3.4 Install MSDE 2000 on Replicated Servers
3.5 Apply MSDE 2000 SP4 to Read-Only Databases or Filegroups in a Replication Topology
3.6 Upgrade the Catalog of Linked Servers
4.0 Additional Installation Considerations
4.1 Redistributing MSDE 2000 SP4
4.2 MSDE 2000 SP4 File Locations
5.3 SQL Server Agent and Shared Tools Enhancements
5.4 XML Enhancements
5.5 DB-Library and Embedded SQL for C
5.6 MSDE 2000 Setup Enhancements
5.7 Serviceability Enhancements
This Readme file describes how to use the SQL Server Desktop Engine (MSDE) part of Microsoft® SQL Server™ 2000 Service Pack 4 (SP4). You can use Desktop Engine SP4 either to upgrade existing instances of MSDE to MSDE 2000 SP4 or to install a new instance of MSDE 2000 SP4.
The general process for installing SQL Server SP4 is as follows:
Note Unless specified otherwise, all references to SQL Server 2000 Desktop Engine in this Readme are to MSDE 2000 Release A. The MSDE 2000 Release A download is functionally equivalent to SQL Server 2000 Desktop Engine SP3a, but includes a new End-User License Agreement (EULA) that gives users rights that are different from those in earlier MSDE 2000 licenses.
SQL Server 2000 SP4 has four parts. You use each part to apply SP4 to different SQL Server components:
All SQL Server service packs are cumulative. SQL Server SP4 includes the fixes delivered in SP1, SP2, SP3, and SP3a.
MSDE 2000 SP4 can only be used on instances of SQL Server 2000 Desktop Engine or MSDE 2000 Release A. The other parts of SQL Server 2000 SP4 apply SP4 to the other SQL Server 2000 components, such as Analysis Services or the database engine. Separate Readme files describe how to use Database Components SP4 and Analysis Services SP4. The other Readme files are available at this Microsoft Web site.
The service pack for MSDE 2000 is intended for developers who create redistributable applications that use MSDE. MSDE 2000 SP4 can be used to do the following:
For more information about MSDE 2000 licensing, see Uses of MSDE 2000. If you do not already have a license to install or run MSDE 2000, you can obtain one by registering on the MSDE 2000 Release A Web page.
To install MSDE 2000 SP4, review the material in Section 1 and Section 2 of this Readme, and follow the instructions in Section 3 if the following apply:
The following sections in this Readme contain examples of the most common scenarios to upgrade an existing instance of MSDE to MSDE 2000 SP4 or install a new instance of MSDE 2000:
Your computer must meet these hardware and software requirements before you attempt to run MSDE 2000 SP4 Setup.
This table shows the hardware requirements for installing and running MSDE 2000.
Hardware | Minimum Requirements |
Computer | Intel Pentium or compatible, 166 MHz or higher |
Memory (RAM) | 128 MB on Microsoft Windows XP and Windows 2003 Server
64 MB minimum on Windows 2000 |
Hard disk space | 75 MB on Microsoft Windows XP and Windows 2003 Server
100 MB on Windows 2000 |
Drive | CD-ROM drive (when installing MSDE 2000 SP4 from a CD-ROM) |
MSDE 2000 does not have a hardware compatibility list (HCL). If your computer meets the minimum requirements listed in the preceding table, MSDE 2000 software works on the hardware certified for use with the Windows operating system. For more information about hardware certified for use with the Windows operating system, see the Windows Hardware Compatibility List on this Microsoft Web site.
To use MSDE 2000, you must have installed one of these operating systems:
Important SQL Server 2000 SP4 is not supported on Windows NT 4.0, Windows Millennium Edition, and Windows 98 platforms. SQL Server 2000 SP3a installations on Windows NT 4.0, Windows Millennium Edition and Windows 98 platforms continue to receive critical hotfix support for 12 months after the final release of SQL Server 2000 SP4.
File and print sharing must be active if you want to run MSDE 2000 Setup.
To verify that file and print sharing are active
An MSDE 2000 SP4 installation fails if either of the following security policies has been set to Do not allow installation:
If you use the Do not allow installation setting, you must change it to Silently succeed before you install MSDE 2000 SP4. If necessary, you can return the policy to its previous setting after installation is complete.
Note Do not allow installation is not the default setting for these security policies.
To set security policies
You can install the upgrade file for MSDE 2000 SP4 from a CD-ROM only if you use Microsoft Windows Installer 2.0.2600.0 or later. If you need to upgrade Windows Installer, MSDE 2000 SP4 contains the necessary files.
To upgrade Windows Installer
If your instance of MSDE is being used by an application, before you upgrade to MSDE 2000 SP4 ask the provider of the application whether any MSDE upgrade considerations apply to that application.
This section describes issues that you must address and tasks you must perform before using MSDE 2000 SP4 to upgrade an existing instance of MSDE to MSDE 2000 SP4.
Databases or database backups created on an instance of Database Components SP4 can be attached or restored on an earlier version of SQL Server 2000. However, there are restrictions for databases in a replication topology. For more information, see Section 1.2.3 Considerations for an Instance in a Replication or Log Shipping Topology.
The procedures to apply MSDE 2000 SP4 to an existing instance of MSDE 2000 vary according to the manner in which the instance was installed. Most applications install MSDE 2000 in one of the following ways:
Note Setup utilities for new applications must be written to call the MSDE 2000 Setup utility rather than written to consume the MSDE 2000 merge modules directly. MSDE 2000 SP4 includes merge modules. However, these merge modules can be used only by application vendors who must build patch files for MSDE instances that they originally installed by means of utilities that directly consumed merge modules.
If multiple instances of MSDE 2000 are on a computer, you must evaluate each instance individually to determine whether you can apply MSDE 2000 SP4. You must also apply SP4 separately to each instance.
Note Microsoft does not support configurations where more than 16 instances of the SQL Server database engine are on one computer. These include instances of SQL Server 6.5, SQL Server 7.0, SQL Server 2000, MSDE 1.0, and MSDE 2000.
Microsoft Knowledge Base Article 311762 contains instructions to determine the way in which an instance of MSDE 2000 was installed. After you follow the procedures in article 311762, keep the following points in mind:
You can run the MSDE 2000 SP4 Setup program from your hard disk, a network share, or a CD-ROM. The original MSDE 2000 installation files are not required if you run Setup from your hard disk. But if you upgrade an instance of MSDE 2000 to MSDE 2000 SP4 from a network share or a CD, the files that were used to install MSDE 2000 originally must be in the same location they occupied during that original installation. If the original installation was from a CD, MSDE 2000 SP4 setup will request the original CD during the upgrade. If the original files are no longer in their original location on the network share, or the original CD-ROM is not available, you must copy the MSDE 2000 SP4 files to your hard drive and run Setup there.
MSDE 2000 SP4 Setup upgrades user databases that are members of a replication topology. This upgrade factor can affect backup-and-restore functionality of replicated user databases. Before you install MSDE 2000 SP4, ensure that replication databases and filegroups are writable.
For more information about applying SP4 to databases that are included in replication topologies, see Section 3.4 Install MSDE 2000 on Replicated Servers. Additional backup and restore considerations for replication are detailed in Section 5.2.4 Backup and Restore Issues for Merge Replication.
Note If an instance of MSDE 2000 is not part of a replication topology, you can back up a user database and restore it on any other release of SQL Server 2000 or MSDE 2000.
If Setup detects user databases or filegroups that are not writable, it does the following:
Setup has detected one or more databases and filegroups which are not writable.
You can ignore this warning unless some of the databases listed in the Setup log are members of a replication topology. If any of the non-writable databases listed in the Setup log are members of a replication topology, you must make those databases writable and reapply SP4 to that instance of MSDE 2000.
For information about making a database writable, see Section 3.5 Apply MSDE 2000 SP4 to Read-Only Databases or Filegroups in a Replication Topology. For more information about reapplying SP4, see Section 3.8 Reapply MSDE 2000 SP4.
Before you use MSDE 2000 SP4 to upgrade an existing instance of MSDE, it is advisable to plan how to return the instance to its previous state, in case that becomes necessary later. When MSDE 2000 SP4 is installed, it makes changes to the system tables for maintenance purposes. It also upgrades user and distribution databases that are members of a replication topology. Because of the nature of these changes, MSDE 2000 SP4 cannot be removed easily. To revert to the build that you were running before you installed MSDE 2000 SP4, you must first uninstall the instance of MSDE 2000 and then reinstall that instance. Second, if you ran a previous SQL Server 2000 service pack or applied any hotfixes, you must reapply the service pack and hotfixes to the instance being reverted.
Important To restore your system safely to its pre-MSDE 2000 SP4 state, you must have made backups of the master, model, and msdb databases immediately before you installed MSDE 2000 SP4. For more information, see Section 3.1.1 Back Up Your SQL Server Databases.
For more information, see Section 3.7 Uninstall MSDE 2000 SP4.
The behavior of MSDE 2000 Setup was changed in SP3a so that the default settings resulted in a more secure configuration. These changes are carried forward in SP4, as follows:
SP4 disables the network support by default when new instances of MSDE 2000 are installed. When an existing instance is upgraded, its network support settings are retained. If no application on another computer connects to your instance of MSDE 2000, the instance has no need for network support. It is prudent to turn off a resource that is not being used. You can enable network support during setup if you specify a value of 0 for the DISABLENETWORKPROTOCOLS setup parameter. If you enable network support when you install an instance of MSDE 2000 SP4, you can later reconfigure the instance to disable the support. For more information about how to disable and restore network access, see Microsoft Knowledge Base article 814130.
The MSDE 2000 SP4 Setup does not install a new instance of MSDE 2000 unless you specify a strong sa password. Use the SAPWD parameter to specify the strong sa password. The MSDE 2000 SP4 Setup does not upgrade an existing instance of MSDE 2000 unless you assign a strong password to the sa login. You must assign a strong password to the sa login, even when you upgrade an existing instance, unless the application that uses your instance of MSDE depends in some way on a null sa password. Even if the instance of MSDE 2000 uses Windows Authentication, sa login immediately becomes active if the instance is switched to Mixed Mode Authentication. A null, blank, simple, or well-known sa password is vulnerable to use for unauthorized access. If you need to assign a strong sa password before you upgrade your instance of MSDE 2000 to MSDE 2000 SP4, see Microsoft Knowledge Base article 322336.
Whenever possible, for greater security, use Windows Authentication with your MSDE 2000 installation. Consider switching from Mixed Mode Authentication to Windows Authentication if both of the following are true:
For more information on changing an instance of MSDE 2000 from Mixed Mode Authentication to Windows Authentication, see Microsoft Knowledge Base article 322336.
You must know the instance names if you want to install multiple copies, or instances, of MSDE 2000 and the SQL Server 2000 database engine on one computer. You can have up to 16 instances on a computer. One instance has no instance name and is called the default instance. The other 15 instances must have unique instance names and are called named instances.
You use the MSDE SP4 Setup program to install or upgrade instances of MSDE. If you are installing or upgrading a named instance of MSDE, you must use the INSTANCENAME parameter to specify the instance name. If you do not specify INSTANCENAME, Setup operates on the default instance of MSDE on that computer. You cannot use MSDE 2000 SP4 to upgrade an instance of the SQL Server 2000 database engine.
To find the existing instances on your computer:
A default instance appears in the right list pane as a service named MSSQLSERVER. Named instances are listed as services named MSSQL$InstanceName, where InstanceName is the name of the instance.
Instance names must follow the rules that are on this Microsoft Web page.
MSDE 2000 SP4 setup determines whether to upgrade an installed version of Microsoft Data Access Components (MDAC) to MDAC 2.8 SP1:
Note If a computer on which MSDE 2000 SP4 is installed is upgraded to a newer operating system platform, the version of MDAC installed by SP4 is no longer present.
Note See Knowledge Base article 301202 for instructions on determining the version of MDAC on your computer.
When MSDE 2000 SP4 installs MDAC 2.8 SP1, the MDAC language version is the same as the language version of MSDE 2000 SP4. If you want to maintain a language version of MDAC that is different from that of MSDE 2000 SP4, you must download and install the intended language version of MDAC 2.8 SP1 before you run MSDE 2000 SP4 Setup. You can download language-specific versions of MDAC 2.8 SP1 from the Microsoft Data Access Downloads page.
MDAC 2.8 SP1 includes an upgrade to MSXML 3.0 SP7. MDAC 2.81 also updates SQLXML 1.0, which shipped with Microsoft SQL Server 2000. This service pack does not install or update SQLXML 3.0. If your application requires SQLXML 3.0, you must download and install it from this Microsoft Web site. For more information about MDAC 2.8 SP1, see the Microsoft Data Access Downloads page. For more information about MDAC versions, see Knowledge Base article 822758. Fixes included in MDAC 2.8 SP1 are documented in Knowledge Base article 884930.
All versions of Windows that are supported for use with MSDE 2000 include a version of the MDAC software that works with MSDE 2000 SP4. If you configure an instance of MSDE 2000 to support network communications and to operate as a database server, you need not install client software on any Windows computers to enable applications to connect from that computer to the instance of MSDE 2000. For more information about network communications, see this Microsoft Web page.
Note Prerelease versions of SQL Server 2000 SP4 installed a prerelease version of MSXML 3.0 SP7. If you installed a prerelease version of SQL Server 2000 SP4, it is recommended that you download and install the final release version of MSXML 3.0 SP7 from this Microsoft Web site.
Before running Setup, identify the version of the MSDE 2000 instance that is being upgraded. If the version of MSDE 2000 is already at or greater than SP4, you do not need to install SP4.
To identify the installed version of MSDE 2000:
SELECT SERVERPROPERTY('ProductLevel')
SELECT @@VERSION
SELECT SERVERPROPERTY('ProductVersion')
SQL Server 2000 Version and Level | @@VERSION | Product Level |
SQL Server 2000 Original Release | 8.00.194 | RTM |
Desktop Engine SP1 | 8.00.384 | SP1 |
Desktop Engine SP2 | 8.00.534 | SP2 |
Desktop Engine SP3, SP3a, or MSDE 2000 Release A. | 8.00.760 | SP3 |
MSDE 2000 SP4 | 8.00.2039 | SP4 |
Note Your product version may be different than these values if you applied a hotfix after installing the product or after installing a previous service pack. For example, @@VERSION
returns a value of 8.00.818 after you apply the security fix MS03-031 to MSDE 2000 Release A.
SELECT SERVERPROPERTY('Edition')
When the value Desktop Engine is returned, the instance is MSDE 2000.
A list of the fixes contained in this service pack will be provided in Microsoft Knowledge Base article 888799. Each fix listed in 888799 has a link to a Knowledge Base article about the problem that is addressed by the particular fix. Follow the links to individual Knowledge Base articles to see information about each fix.
Any information relevant to SQL Server 2000 Service Pack 4 that was not available in time to be included in this Readme file will be published in Microsoft Knowledge Base article 884525.
The Knowledge Base articles mentioned in this Readme are available in the Microsoft Knowledge Base.
To find an article in the Knowledge Base
All publicly issued SQL Server 2000 SP3a and SQL Server 2000 (64-bit) security bulletins have been addressed in SP4.
If you received a SQL Server 2000 hotfix after December 2, 2004, that hotfix is unlikely to be included in SP4. Contact your primary support provider about obtaining the same hotfix for SQL Server 2000 SP4.
SQL Server 2000 SP4 includes serviceability enhancements that enable you to uninstall future hotfixes. For more information, see Section 5.7 Serviceability Enhancements.
SQL Server 2000 SP4 incorporates changes to MSDE 2000 that address issues raised by the Slammer worm:
Users of Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE) and SQL Server 2005 Mobile Edition (SQL Mobile) who have upgraded or plan to upgrade SQL Server 2000 database and publisher servers to SP4 should also update the server replication components on Microsoft Internet Information Services (IIS) servers. Updated server tools installers are available for SQL Server CE and for SQL Mobile.
Note Even if you updated your server replication components after you upgraded to SQL Server 2000 SP3 or SP3a, you must install the latest SP4-specific updates to server tools components.
SQL Server 2000 SP4 removes the OPENXML dependency on the version of MSXML installed by the operating system. MSDE 2000 SP4 installs an internal version of the MSXML technology that is backward compatible with MSXML 2.6.
SQL Server 2000 Books Online is the primary user documentation for MSDE 2000. Books Online is updated periodically with fixes and new information. In January 2004, Books Online was updated to include additional information about MSDE 2000. You are strongly encouraged to download and install the latest version of Books Online for the following reasons:
Current versions of Books Online are available at the following locations:
Samples for the SQL Server 2000 database engine that were updated for SQL Server 2000 SP3 and SP3a are available from this Microsoft Web site. All samples that reference the SQL Server 2000 components that are included in MSDE 2000 also apply to MSDE 2000, except for features that MSDE 2000 does not support. The included features are the database engine, database client connectivity components and programming APIs, Replication, and Data Transformation Services (DTS).
Before you prepare to download and extract SQL Server 2000 SP4, read "Downloading and Extraction Phase Guidelines," later in this section. SQL Server 2000 SP4 is distributed in the following ways:
If you have a SQL Server 2000 SP4 CD, you can upgrade an instance of MSDE 2000 to MSDE 2000 SP4 by using the self-extracting file SQL2000.MSDE-KB884525-SP4-x86-LLL.exe from the CD.
Note LLL represents a designator that varies by language.
After you have acquired SQL2000.MSDE-KB884525-SP4-x86-LLL.exe from either the download site or SP4 CD, you can then run it to extract the MSDE 2000 SP4 files onto your computer. SQL2000.MSDE-KB884525-SP4-x86-LLL.exe creates a set of folders and files on your hard disk that you can use to install MSDE 2000 SP4.
SQL Server 2000 Desktop Engine service packs are language-specific. To upgrade an instance of MSDE 2000, you must obtain the service pack that has the same language as your instance. You get the service pack either on a SQL Server 2000 SP4 CD or by downloading the MSDE 2000 SP4 files. For example, if you upgrade an instance of MSDE 2000 that uses Japanese, you must get the Japanese version of MSDE 2000 SP4.
Note MSDE 2000 SP4 is the only part of the service pack that is available in Portuguese (Brazil), Swedish, and Dutch because SQL Server 2000 Desktop Engine is the only component of SQL Server 2000 that is produced for those languages. The SQL Server 2000 components that Database Components SP4 or Analysis Services SP4 upgrades are not available in those languages.
If you are unsure of the language of an instance of MSDE 2000:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstanceName\CurrentVersion
where InstanceName is the name of the instance.
Language Registry Value (in Hexadecimal) | Language Registry Value (in Decimal) | Language of That Instance |
0x00000404 | 1028 | Traditional Chinese |
0x00000407 | 1031 | German |
0x00000409 | 1033 | English |
0x0000040a | 1034 | Spanish |
0x0000040c | 1036 | French |
0x00000410 | 1040 | Italian |
0x00000411 | 1041 | Japanese |
0x00000412 | 1042 | Korean |
0x00000413 | 1043 | Dutch |
0x00000416 | 1046 | Portuguese (Brazil) |
0x0000041d | 1053 | Swedish |
0x00000804 | 2052 | Simplified Chinese |
If your instance of MSDE 2000 was installed by using the MSDE setup utility, you can upgrade your instance of MSDE 2000 by using a SQL Server 2000 SP4 download file. The original package name of the setup utility was SqlRun01.msi through SqlRun16.msi.
To download MSDE 2000 SP4:
You must first extract the installation files from SQL2000.MSDE-KB884525-SP4-x86-LLL.exe before you can install MSDE 2000 SP4. You can execute SQL2000.MSDE-KB884525-SP4-x86-LLL.exe directly from the SP4 CD, or from the folder into which you either downloaded it or copied it from the CD.
To extract the MSDE 2000 SP4 files:
When you download and extract MSDE 2000 SP4 installation files from the Internet, use the following guidelines:
Note When you extract the service pack to a network shared directory, the path to the folder that you specify is relative to the folder from which you ran SQL2000.MSDE-KB884525-SP4-x86-LLL.exe.
To install MSDE 2000 SP4, use the installation instructions in the following sections. Review the material in Section 1.0 Introduction, before you install MSDE 2000 SP4. The installation stages for MSDE 2000 SP4 are as follows:
MSDE 2000 SP4 contains a complete set of the files required to install or upgrade instances of SQL Server 2000 Desktop Engine. You can perform all the MSDE 2000 setup actions by using the files from MSDE 2000 SP4, if you have a license to install or upgrade an instance of MSDE 2000. For more information about MSDE 2000 licensing, see this Microsoft Web site.
If you need additional information about running Setup, the primary source of documentation is SQL Server 2000 Books Online. For more information about installing the latest version of SQL Server 2000 Books Online or accessing the copy that is online in the MSDN Library, see section 1.8 Updates to SQL Server 2000 Books Online Are Available.
Here is a link to the reference topic for the Setup executable file in the copy of Books Online in the MSDN Library: Customizing Desktop Engine Setup.exe.
In the latest version of SQL Server 2000 Books Online, "Customizing Desktop Engine Setup.exe" documents the functionality of the version of the Setup executable file that is included in Desktop Engine SP3a and MSDE 2000 Release A. The documentation is also current for the SP4 version of Desktop Engine Setup, except for the SAVESYSDB parameter, which was introduced in SP4. For more information, see Section 5.6.1 New MSDE 2000 Setup SAVESYSDB Parameter.
Note In versions of Setup for MSDE before SQL Server 2000 SP3, users were required to specify the .msi installation package file that they used to install or upgrade an instance of MSDE 2000. In SP3 and later versions of Setup, Setup manages the .msi files and you do not need to specify the .msi file for either an upgrade or a new installation.
You must do the following before you install MSDE 2000 SP4:
Before you install MSDE 2000 SP4, back up the master, msdb, and model databases. Installation of MSDE 2000 SP4 modifies the master, msdb, and model databases, making them incompatible with pre-SP4 versions of MSDE 2000. Backups of these databases are required if you decide to reinstall MSDE 2000 without SP4.
It is also prudent to back up your user databases, although SP4 performs updates only on user databases that are members of replication topologies.
An existing backup scheme accounts for replication and thus allows you to restore a database, after a failure, to a known point after the SP4 upgrade. After applying SP4, a log backup or full database backup is recommended for any user database that is included in a replication topology. If you perform these database backups, and a replication database later fails, you do not have to reapply SP4 after the database is restored.
If the autogrow option is not selected for the master and msdb databases, the databases must have at least 500 kilobytes (KB) of free space. To verify that they have this much space, run the sp_spaceused system stored procedure for the master database or msdb database. If the unallocated space in either database is less than 500 KB, increase the size of the database. For more information, see "Expanding a Database" in SQL Server 2000 Books Online.
If the autogrow option is selected for the master and msdb databases, and there is sufficient room on the drives, you can skip the preceding space-verification step.
To verify that the autogrow option is selected in MSDE 2000, use the osql command prompt utility to issue the following SQL statements:
sp_helpdb master
sp_helpdb msdb
In the output of these statements, verify that the value of the growth column is not 0.
You should stop all applications and services, including Control Panel, Add and Remove Programs, SQL Server 2000 Reporting Services, SQL Server 2000 Notification Services, and all applications that make connections to the instance of MSDE being upgraded, before installing MSDE 2000 SP4.
You can apply MSDE 2000 SP4 without first shutting down services, but then some services will not start again without a system reboot. If you do not shut down services, you are prompted to reboot the computer when Setup is complete. If you do not reboot the system, the following services may fail to start:
You can reduce the likelihood that you will need to restart your computer after you install MSDE 2000 SP4. To reduce this likelihood, stop the services and applications in the preceding list before you run Setup.
This section includes general guidelines for running the MSDE 2000 SP4 Setup utility. The section then gives examples of the most common MSDE 2000 SP4 scenarios:
To install MSDE 2000 SP4, run Setup.exe from one of the following locations:
This starts the setup installation process.
The Setup executable file that is included in MSDE 2000 SP4 is the SP4 version of the Desktop Engine Setup program for MSDE 2000. Except for the SAVESYSDB parameter, the operation of the MSDE 2000 SP4 Setup is documented in the latest version of SQL Server 2000 Books Online. For information about installation of the latest version of SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic that documents the behavior of Setup.exe: Customizing Desktop Engine Setup.exe.
MSDE 2000 SP4 is designed to be distributed with applications and installed by the setup program of an application. MSDE 2000 does not have an interactive setup program. The setup mechanisms for MSDE 2000 are designed to be called by an application setup utility. The application setup handles any required interaction with the end user. MSDE 2000 has two installation mechanisms:
Important Always install or upgrade instances of MSDE by running Setup.exe. Do not try to start Setup indirectly through an .msi file; for example, do not double-click one of the MSDE 2000 .msi files.
You must run Setup.exe from the command prompt to install or upgrade any instance of MSDE. Users control the behavior of the MSDE 2000 Setup program by specifying parameters. The setup parameters can be specified in one of two ways:
You must enclose the values for MSDE Setup parameters in quotation marks if the value specified has special characters, such as blanks. Otherwise, quotation marks are optional.
Sections 3.2.2, 3.2.3, and 3.2.4 give examples of the parameters to use for the most common scenarios for installing MSDE 2000 SP4. The parameters that can be specified for Setup are documented in the latest version of SQL Server 2000 Books Online. For information about installing the latest version of SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic documenting the behavior of Setup.exe: Customizing Desktop Engine Setup.exe.
Note Problems can occur if you use a Terminal Services connection to attempt to upgrade an existing instance of MSDE to MSDE 2000 SP4, or to install a new instance of MSDE 2000 SP4. If you encounter problems, restart Setup from the local computer.
You can specify MSDE 2000 Setup.exe parameters in an .ini file whose location is specified by a /settings switch. An .ini file is a text file; for example, a file you create by using Notepad and save with a file name that has an extension of .ini. In the .ini file, the first line is [Options]. Next, you specify the parameters, one parameter per line.
Security Note If you use an .ini file during setup, avoid storing security credentials in it.
The following example specifies the parameters at the command prompt:
setup SAPWD="AStrongPassword" INSTANCENAME="InstanceName"
TARGETDIR="C:\MyInstanceFolder"
To run Setup with the same parameters in an .ini file, use Notepad to create a file named MyParameters.ini
with the following content:
[Options]
INSTANCENAME="InstanceName"
TARGETDIR="C:\MyInstanceFolder"
Then run Setup, using the /settings switch to point to the .ini file:
setup /settings "MyParameters.ini" SAPWD="AStrongPassword"
Use a verbose log to verify that N installation succeeded or to help troubleshoot when problems.
To generate a verbose log, specify /L*v <LogFileName>, where <LogFileName> is the name of a log file where Setup records all of its actions. If you do not specify a path as part of the name, the log file is created in the current folder. If you are executing Setup from a CD-ROM, you must specify the full path to a folder on your hard disk.
The following example creates a log file, MSDELog.log, in the root folder of the C: drive:
setup SAPWD="AStrongSAPassword" /L*v C:\MSDELog.log
If installation succeeds, an entry similar to the following appears at the end of the log:
=== Logging stopped: 5/16/03 0:06:10 ===
MSI (s) (BC:7C): Product: Microsoft SQL Server Desktop Engine
-- Installation operation completed successfully.
If the installation fails, an entry similar to the following appears at the end of the log:
=== Logging stopped: 5/15/03 23:50:34 ===
MSI (c) (6A:CE): Product: Microsoft SQL Server Desktop Engine
-- Installation operation failed.
If the installation failed, search for the string "value 3"
in the error log. Within 10 lines of the string is a failure notice for a custom action. The notice contains additional information about the nature of the failure.
The examples in this section show you how to upgrade an existing instance of MSDE 2000 to MSDE 2000 SP4, and to disable the network connectivity for that instance of MSDE 2000. If the instance must accept connections from applications that are running on other computers, do not specify the DISABLENETWORKPROTOCOLS parameter.
The examples in this section incorporate the assumption that the sa login has a strong password. For more information about the sa login password, see section 1.3 Security Considerations for MSDE 2000 SP4.
To upgrade an existing MSDE 2000 instance to MSDE 2000 SP4
cd c:\MSDESP4Folder\MSDE
where c:\MSDESP4Folder is either the path to the folder into which you extracted the MSDE 2000 SP4 files or the MSDE 2000 SP4 folder on the SQL Server 2000 SP4 CD.
setup /upgradesp sqlrun /L*v C:\MSDELog.log
setup /upgradesp sqlrun DISABLENETWORKPROTOCOLS=0 /L*v C:\MSDELog.log
setup /upgradesp sqlrun INSTANCENAME=InstanceName /L*v C:\MSDELog.log
setup /upgradesp sqlrun SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin
UPGRADEPWD=AdminPassword /L*v C:\MSDELog.log
setup /upgradesp sqlrun INSTANCENAME= InstanceName SECURITYMODE=SQL
UPGRADEUSER=AnAdminLogin UPGRADEPWD=AdminPassword /L*v C:\MSDELog.log
Line breaks were included in these examples for readability. Commands must be executed without line breaks.
Note If the instance of MSDE 2000 being upgraded was previously upgraded from MSDE 1.0 using an earlier SQL Server 2000 service pack, you must also append UPGRADE=1
to the setup command.
Security Note If you use an .ini file during setup, do not store credentials in the .ini file.
The examples in this section show you how to install a new instance of MSDE 2000 SP4 that has been configured with its network connectivity disabled, which is the default behavior. If the instance must accept connections from applications that are running on other computers, you must also specify DISABLENETWORKPROTOCOLS=0
.
The following examples install instances by using the defaults for all configuration items, such as collation and file locations. The configurations can be controlled by setup parameters, such as COLLATION, DATADIR, and TARGETDIR. For more information about the configuration parameters that you can specify upon Setup, see Customizing Desktop Engine Setup.exe.
To install a new instance of Desktop Engine
cd c:\MSDESP4Folder\MSDE
where c:\MSDESP4Folder is either the path to the folder into which you extracted the MSDE 2000 SP4 files or the MSDE 2000 SP4 folder on the SQL Server 2000 SP4 CD.
setup SAPWD="AStrongSAPwd" /L*v C:\MSDELog.log
where AStrongSAPwd is a strong password to be assigned to the sa login.
setup INSTANCENAME="InstanceName" SAPWD="AStrongSAPwd"
/L*v C:\MSDELog.log
where AStrongSAPwd is a strong password to be assigned to the sa login and InstanceName is the name to be assigned to the instance.
setup SAPWD="AStrongSAPwd" SECURITYMODE=SQL
/L*v C:\MSDELog.log
where AStrongSAPwd is a strong password to be assigned to the sa login.
setup INSTANCENAME="InstanceName" SECURITYMODE=SQL
SAPWD="AStrongSAPwd" /L*v C:\MSDELog.log
Where AStrongSAPwd is a strong password to be assigned to the sa login and InstanceName is the name to be assigned to the instance.
Important If you use an .ini file during setup, do not store credentials in the .ini file.
Important Always specify a strong password for the sa login, even when the instance is configured to use Windows Authentication.
The examples in this section show you how to upgrade an existing instance of MSDE 1.0 to MSDE 2000 SP4, and to disable the network connectivity for the instance. If the instance must accept connections from applications that are running on other computers, do not specify the DISABLENETWORKPROTOCOLS parameter.
MSDE 1.0 operates in the same fashion as a default instance of MSDE 2000, and is always upgraded to a default instance of MSDE 2000.
Note Instances of MSDE 1.0 in a replication topology cannot be upgraded to MSDE 2000 SP4.
To upgrade MSDE 1.0 instance to MSDE 2000 SP4
cd c:\MSDESP4Folder\MSDE
where c:\MSDESP4Folder is either the path to the folder into which you extracted the MSDE 2000 SP4 files, or the MSDE 2000 SP4 folder on the SQL Server 2000 SP4 CD.
setup UPGRADE=1 DISABLENETWORKPROTOCOLS=1
/L*v C:\MSDELog.log
setup UPGRADE=1 SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin
UPGRADEPWD=AdminPassword DISABLENETWORKPROTOCOLS=1
/L*v C:\MSDELog.log
Important If you use an .ini file during setup, do not store credentials in the .ini file.
Security Note The use of blank passwords is strongly discouraged because blank passwords add a significant vulnerability to security breaches.
Note If you use BLANKSAPWD=1
, you are not required to specify SECURITYMODE=SQL
or UPGRADEUSER
and UPGRADEPWD
.
When Setup completes, it may prompt you to restart the system. Section 3.1.3 Stop Services and Applications Before You Run MSDE 2000 SP4 Setup provides guidelines on when a restart is required. After the system restarts (or after Setup completes without requesting a restart), use the Services application in Control Panel to make sure that any services you stopped before you applied the service pack are now running. Services you might have stopped before you applied the service pack include DTC and the MSSQLServer and SQLServerAgent services or their instance-specific equivalents.
Restart the applications you closed before you ran the service pack Setup program.
It is prudent also to back up the upgraded master and msdb databases at this time.
The following information applies only to existing MSDE 2000 instances that are part of a merge replication topology.
Note In many cases, especially in merge replication, the Distributor and Publisher are on the same server and are upgraded at the same time.
You need to quiesce the system (stop all updates) and upgrade all servers simultaneously in the following cases.
The following table includes servers that both publish and subscribe to publications that allow updates at the Subscriber. As noted in the preceding section, you must follow the upgrade order Distributor, Publisher, Subscriber for topologies that allow updates at the Subscriber. This order requires that you upgrade Server A first for the merge publication and Server B first for the transactional publication with updating Subscribers. In this case, you must quiesce the system and upgrade the servers simultaneously.
Server A | Server B |
---|---|
Publisher/Distributor for merge replication | Subscriber for merge replication |
Subscriber for transactional replication with updating | Publisher/Distributor for transactional replication with updating |
In this example, you can upgrade Server A first because the read-only transactional publication allows a Subscriber to be upgraded before the Publisher/Distributor is upgraded.
Server A | Server B |
---|---|
Publisher/Distributor for merge replication | Subscriber for merge replication |
Subscriber for read-only transactional replication | Publisher/Distributor for read-only transactional replication |
The following information applies only to instances of MSDE 2000 that are part of a merge replication topology.
When non-writable databases or filegroups exist, Setup displays the following message:
Setup has detected one or more databases and filegroups which are not writable.
In general, you can ignore this warning and setup continues. However, if any of the non-writable databases listed in the Setup log are members of a replication topology, you must make those databases writable and reapply SP4 Setup to that instance of SQL Server 2000.
During installation, Setup makes no distinction between non-writable databases and databases that are offline or in a suspect state. If a database or filegroup in a replication topology is non-writable during setup, you must reapply the service pack to upgrade this database. For more information about how to bring a database online, see the topic "Attaching and Detaching a Database" in SQL Server 2000 Books Online. For more information about diagnosing suspect databases, see the topic "Server and Database Troubleshooting" in SQL Server 2000 Books Online.
To apply MSDE 2000 SP4 to a read-only database
ALTER DATABASE
statement, as follows:
ALTER DATABASE database SET READ_WRITE
ALTER DATABASE
, as follows:
ALTER DATABASE database SET READ_ONLY
To apply SP4 to a read-only filegroup
ALTER DATABASE
, as follows:
ALTER DATABASE Database
MODIFY FILEGROUP filegroup_name READWRITE
ALTER DATABASE
, as follows:
ALTER DATABASE Database
MODIFY FILEGROUP filegroup_name READONLY
For more information about ALTER DATABASE, see the "ALTER DATABASE" reference topic in SQL Server Books Online. For more information about reapplying SP4, see Section 3.8 Reapply MSDE 2000 SP4.
When you upgrade an instance of MSDE 2000 to MSDE 2000 SP4, you might need to verify that some of the system stored procedures are updated in other instances of SQL Server or MSDE.
MSDE 2000 SP4 includes an upgrade of the Microsoft Data Access Components (MDAC) to MDAC 2.8 SP1. MDAC 2.8 SP1 includes updates to the SQLOLEDB provider and the SQL Server ODBC driver. For more information, see Section 1.5 Verify the Version of Microsoft Data Access Components. When either the provider or driver connects to an instance of SQL Server or MSDE, the provider or driver uses a set of system stored procedures known as the catalog stored procedures. The versions of the catalog stored procedures on the instance must be the same version or later than the provider and driver uses. If you attempt to connect to an instance of SQL Server or MSDE that has earlier versions of the catalog stored procedures, you receive the following error:
The ODBC catalog stored procedures installed on server <ServerName>
are version <OldVersionNumber>; version <NewVersionNumber> or later
is required to ensure proper operation. Please contact your system
administrator.
Each version of the provider and driver is shipped with a script named Instcat.sql. Instcat.sql upgrades the catalog stored procedures in any instance of SQL Server or MSDE that has an earlier version of the catalog.
After installing MSDE 2000 SP4, you must run the Instcat.sql script from MSDE 2000 SP4 against any instance of SQL Server or MSDE that is an earlier version than SQL Server 2000 SP4 and has the following characteristics:
To upgrade the catalog stored procedures on an instance of MSDE 2000 that has the Windows Authentication option selected
osql -E -SComputerName -ilocation\instcat.sql
osql -E -SComputerName\InstanceName -ilocation\instcat.sql
To upgrade the catalog stored procedures on MSDE 2000 instance that has the Mixed Mode Authentication option selected:
osql -UAnAdminLogin -PAdminPassword
-SComputerName -ilocation\instcat.sql
osql -UAnAdminLogin -PAdminPassword
-SComputerName\InstanceName -ilocation\instcat.sql
where:
InstanceName
is the name of a named instance of SQL Server 2000 or MSDE 2000.instcat.sql
. The default location for an installed instance of SQL Server 2000 is c:\program files\Microsoft SQL Server\MSSQL\Install.The Instcat.sql script generates many messages. Typically, the messages do not indicate any errors. They only inform you how many rows were affected by each Transact-SQL statement in the script. The final message should indicate whether the script ran successfully.
To be able return to pre-SP4 versions of MSDE 2000, you must back up the master, msdb, and model databases before you install SP4. For more information, see Section 3.1.1 Back Up Your SQL Server Databases.
To return to a pre-SP4 version of MSDE 2000
Warning When you revert to the pre-SP4 version of SQL Server, all changes made to the databases master, msdb, and model after you installed SP4 are lost.
Note MDAC updates are not uninstalled when you revert to a pre-SP4 version of MSDE 2000. For more information, see Section 1.5 Verify the Version of Microsoft Data Access Components.
You must reapply MSDE 2000 SP4 if databases or filegroups are made writable that are part of a replication topology and were read-only during the initial application of SP4.
To reapply MSDE 2000 SP4, follow the steps in Section 3.0 Service Pack Installation.
This section documents additional service pack installation considerations.
MSDE 2000 SP4 contains all the files necessary to redistribute MSDE 2000 with applications, if the application vendor has a license to distribute MSDE 2000. You can distribute the MSDE 2000 SP4 files as documented in the latest version of SQL Server 2000 Books Online. You can also register for MSDE 2000 redistribution rights at this Microsoft Web site.
For more information about installing the latest version of SQL Server 2000 Books Online, see Section 1.8 Updates to SQL Server 2000 Books Online Are Available.
If an application has a Windows Installer-based setup utility, the application can install an instance of MSDE 2000 by consuming the MSDE 2000 merge modules. MSDE 2000 SP4 provides merge modules to support existing applications that use merge modules. The Setup utilities for new applications must be written to call the MSDE 2000 Setup utility rather than directly consuming the MSDE 2000 merge modules.
Vendors who choose to install instances of MSDE 2000 by using the MSDE 2000 merge modules must supply all subsequent MSDE 2000 patches to their customers. Instances of MSDE 2000 that are installed by direct consumption of merge modules by the application are marked with a product code GUID that Windows Installer associates with the application. Only patch files that also contain the application product code GUID can patch those instances of MSDE 2000. Only patch files produced by the application vendor will contain the proper product codes. The MSDE 2000 service packs supplied by Microsoft cannot be applied to those instances. The application vendor must build patch files from the MSDE 2000 SP4 files and distribute those patch files to any of the vendors MSDE customers who need the fixes in SP4.
For more information about how to create patch file packages, see the Windows Installer Software Development Kit (SDK), which can be downloaded from the Microsoft Platform SDK Web site.
If an application setup utility installs an instance of MSDE 2000 by calling MSDE 2000 Setup, that instance of MSDE 2000 is marked with the MSDE 2000 product code GUID. Customers can patch these instances by using the standard MSDE 2000 service pack files. The application vendor can choose one of the following ways to distribute MSDE 2000 SP4:
All MSDE SP4 installation files and folders are in the \MSDE folder, which is in one or more of the following locations:
The \MSDE folder holds the Readmesql2k32desksp4.htm file, the readme.txt file, the license.txt file, and the executable files for the Setup utility. It also has the following subfolders:
For further instructions about how to use the MSDE merge modules, see the topic "Using SQL Server Desktop Engine Merge Modules" in SQL Server 2000 Books Online.
Note Merge modules are not supported for new installations. They are provided in SP4 for servicing instances of MSDE 2000 that were previously installed using merge modules.
If your application setup calls MSDE 2000 Setup, build a folder that has the following structure and sets of files. The folder MSDEInstallFolder represents an example folder name:
MSDEInstallFolder
Copy to this location the following files from the MSDE 2000 SP4 \MSDE folder: Setup.exe, Setup.ini, Setup.rll, and sqlresld.dll.
MSDEInstallFolder\Msi
Copy to this location the following all the files from the MSDE 2000 SP4 \MSDE\Msi folder.
MSDEInstallFolder\Setup
Copy to this location the following all the files from the MSDE 2000 SP4 \MSDE\Setup folder.
You can then execute Setup.exe to install or upgrade instances of MSDE 2000 SP4.
Note If Windows Installer has not been installed on the computer, or is a version earlier than the supported version for MSDE 2000 SP4 Setup, Setup will use the files in the MSDEInstallFolder\Msi folder to upgrade Windows Installer.
This section covers issues that can occur after you apply MSDE 2000 SP4 and new features that are available when you run SP4. These issues apply when you run the service pack to upgrade from any earlier version of MSDE 2000, including MSDE 2000 Release A. This section does not describe of all of the fixes provided in SP4. For a complete list of these fixes, see Knowledge Base article 888799.
Any information relevant to SQL Server 2000 Service Pack 4 that was not available in time to be included in this Readme file will be published in Microsoft Knowledge Base article 884525.
The following enhancements apply to instances of MSDE 2000 on which Database Components SP4 is installed. They also apply to MSDE 2000 Release A instances on which MSDE 2000 SP4 is installed.
Introduced in SP1
Hash teams have been removed. Because of certain enhancements to MSDE 2000, hash teams no longer produce the performance benefits they offered in MSDE 1.0. In addition, removing hash teams makes MSDE 2000 more stable.
Therefore, the query optimizer no longer generates query plans using hash teams.
In rare cases, the removal of hash teams can cause a query to be processed more slowly. Analyze such queries to see whether creating more suitable indexes will return query performance to its previous level.
Introduced in SP1
Two affinity mask switches have been added to this service pack.
With this service pack, you can specify which CPUs are used to run threads for disk I/O operations. This switch must be used in conjunction with the affinity mask option. For more information, see Knowledge Base Article 298402.
With this service pack, you can configure systems that are enabled for Virtual Interface Architecture (VIA) to bind the MSDE 2000 connections from certain network cards to a processor or a set of processors. This switch must be used in conjunction with the affinity mask option. For more information, see Knowledge Base Article 299641.
Introduced in SP3
When you run sp_change_users_login with the @Action=Auto_Fix argument, you must now specify a password. sp_change_users_login assigns the password to any new login it creates for the user. The following example shows the new @Password argument:
sp_change_users_login [ @Action = ] 'action'
[ , [ @UserNamePattern = ] 'user' ]
[ , [ @LoginName = ] 'login' ]
[ , [ @Password = ] 'password' ]
Use the @Password argument only with @Action=Auto_Fix. The following example shows the new syntax for the sp_change_users_login command when using Auto_Fix. Other examples in SQL Server Books Online remain unchanged.
USE pubs
go
EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-36'
go
Introduced in SP3
If the DisallowAdhocAccess registry option is not explicitly set, by default, ad hoc access to OLE DB providers is not allowed. This means ad hoc query syntax, such as OPENDATASOURCE and OPENROWSET, will not work against remote servers. To allow ad hoc access, you must explicitly set the DisallowAdhocAccess option to 0.
Introduced in SP3
To enable more efficient processing of remote queries that include LIKE predicates, the SqlServerLike option was added in SP3. MSDE 2000 SP3 or later now has two options for sending LIKE operations to linked servers. If the OLE DB provider for a linked server supports the SQL Server syntax for the LIKE operator and wildcards, you can specify the SqlServerLike option to have MSDE 2000 send LIKE operations using SQL Server syntax. If the OLE DB provider for a linked server reports that it supports the Entry Level ANSI/ISO SQL-92 syntax or returns the SQLPROP_ANSILIKE property, SQL Server will send LIKE operations to the linked server using SQL-92 syntax. For more information on SQLPROP_ANSILIKE, see the topic "Programming the SQLPROPSET_OPTHINTS Property Set" in SQL Server 2000 Books Online.
You must add a registry key value to enable the SqlServerLike option for an OLE DB provider.
Security Note Incorrectly editing the registry can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from editing the registry incorrectly can be resolved. Before editing the registry, back up any valuable data..
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<Provider Name>
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Providers\<Provider Name>
Introduced in SP3
For distributed queries, MSDE 2000 returns provider error information in addition to server error information. When a query between linked servers results in an error, MSDE 2000 checks whether the provider supports the IErrorRecords OLE DB interface. If this interface is supported, MSDE 2000 calls the GetErrorInfo function to get additional error information from the provider and returns this information to the user as part of the error message. If the IErrorRecords interface is not supported, there is no change in MSDE 2000 behavior: MSDE 2000 returns a generic error.
For example, run the following query against a server that uses MSDASQL, which does not support sql_variant:
SELECT * FROM remote2k.dqtable.dbo.sqlvariantnotnull
--Remote2k is a loopback server.
Prior to SP3, MSDE 2000 returned the following error message:
Server: Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.
After you apply SP3 or later, MSDE 2000 returns the following error message:
Server: Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.
OLE DB error trace [Non-interface error: Column 'sql_variant' (compile-time
ordinal 3) of object '"dqtable"."dbo"."sqlvariantnotnull"' was reported
to have a DBCOLUMNFLAGS_ISFIXEDLENGTH of 16 at compile time and 0 at run time].
Introduced in SP3
SP3 and later includes the new function fn_get_sql that returns the text of the SQL statement for the specified SQL handle. In addition, to support this function, three new columns have been added to the sysprocesses system table: sql_handle, stmt_start, and stmt_end.
fn_get_sql is documented in the latest copy of the SQL Server 2000 Books Online. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic for fn_get_sql.
Introduced in SP3
This service pack provides new options for turning cross-database ownership chaining on and off.
When installing MSDE 2000 SP4, you can use the ALLOWXDBCHAINING setup parameter to enable cross-database ownership chaining for all databases. ALLOWXDBCHAINING is documented in this topic in the latest copy of the SQL Server 2000 Books Online: Customizing Desktop Engine Setup.exe. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available.
Note Enabling cross-database ownership chaining for all databases is not recommended.
After installation, you can use the following methods to turn cross-database ownership chaining on and off for all databases in the instance:
If cross-database ownership chaining is turned off for the instance, you can configure it for individual databases. Use the following methods to turn cross-database ownership chaining on and off for a database:
For more information, click the Help button on the Backwards Compatibility Checklist page when you run Setup, download the updated edition of SQL Server 2000 Books Online, or see Knowledge Base article 810474.
Introduced in SP3
Trace flag 1204 returns the type of locks participating in the deadlock and the current command affected. In SP3 and later, when this trace flag is on, the deadlock information is automatically written to the error log.
Introduced in SP3
Only members of the sysadmin fixed server role can run the sp_changedbowner system stored procedure.
Introduced in SP3
The functionality for debugging stored procedures with Microsoft Visual Studio® 6.0 and older or with SQL Server Query Analyzer prior to SP3 is turned off by default. Application debugging (stopping at a SQL Server Transact-SQL breakpoint while debugging a client application) is also turned off by default. To enable debugging functionality, run sp_sdidebug, passing the parameter legacy_on. To disable debugging, pass legacy_off to this procedure.
Note Running the sp_sdidebug stored procedure on production servers is not recommended.
For more information, see Knowledge Base article 328151.
Introduced in SP3
After applying the service pack, you are no longer able to disable the Named Pipes protocol on instances of the database engine participating in a failover cluster.
Introduced in SP3a
Starting with MSDE 2000 SP3a, instances of MSDE 2000 that are not configured to support network communications will stop using User Datagram Protocol (UDP) port 1434. Instances that are configured to support network communications will use UDP 1434.
An instance upgraded to SP3a or later will stop using UDP 1434 whenever all of the server Net-Libraries for the instance, except the shared memory Net-Library, are disabled. The instance will start using port 1434 whenever you enable any of the server Net-Libraries. For information on disabling or enabling server Net-Libraries, see the topic "SQL Server Network Utility" in SQL Server 2000 Books Online.
The use of UDP port 1434 by a computer will not stop until all instances of SQL Server 2000 and MSDE 2000 on the computer have been upgraded to SP3a or later and configured to not support network communications.
Whether UDP port 1434 is open or closed does not depend on the state of the shared memory Net-Library. The shared memory Net-Library is used only for local connections, and does not use a network. The shared memory Net-Library is always active; it cannot be enabled or disabled.
You can also specify whether the server Net-Libraries are disabled when installing or upgrading an instance of MSDE 2000. Use either the MSDE 2000 Setup utility DISABLENETWORKPROTOCOLS parameter, or the MSDE 2000 merge module SqlDisableNetworkProtocols property. For more information on these options, see this topic in the latest copy of the SQL Server 2000 Books Online: Customizing Desktop Engine Setup.exe. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available.
Introduced in SP4
In SP4, the maximum value for the network packet size option (set using sp_configure) is 32767. This is slightly less than half the previous maximum of 65536. During upgrade, existing values larger than 32767 will automatically be adjusted to 32767. If a script attempts to use sp_configure to set a value larger than 32767 but less than or equal to 65536, the value will also be set to 32767. Setting the network packet size to a value larger than 65536 results in an error.
Introduced in SP4
SP4 includes a change in the behavior of the SQL Server optimizer that affects queries containing predicates with large IN lists or many OR clauses. More specifically, this change (introduced in SQL Server 2000 hotfix 789) affects queries that contain (or that can be rewritten using an equivalent expression that contains) the following:
When such queries are run on systems that have very large memory and a low degree of parallelism, a query plan with inferior performance may be chosen by the optimizer. To override the change in optimizer behavior, trace flag 9060 is provided in this service pack. By default, trace flag 9060 is OFF. When the trace flag is ON, SP3 behavior prior to hotfix 789 is enabled. If error 701 (insufficient system memory) is encountered when the trace flag is ON, consider rewriting the queries using temporary tables or table variables for the values in the IN lists. For numerical ranges, use BETWEEN clauses or greater than (>) or less than (<) operators. For information on using trace flags, see "Trace Flags" in SQL Server Books Online.
Introduced in SP4
Banyan VINES, Multiprotocol, AppleTalk, and NWLink IPX/SPX network protocols are supported in SP4. However, these protocols will not be supported in SQL Server 2005 and later releases. Please plan accordingly.
This section discusses enhancements to MSDE 2000 replication that are included with MSDE 2000 SP4.
Introduced in SP1
During transactional replication setup, custom stored procedures for insert, delete, and update actions are created in the subscription database. Regardless of how many columns are affected by an UPDATE statement, the update custom stored procedure updates all of the columns in the subscription table. Any column that has not changed is reset to the same values that existed before the update. Typically, this action causes no problems. However, if any of these columns are indexed, this resetting can become expensive.
If you use transactional replication and have several indexes on the subscription table, and only a few column values change because of updates, the overhead of maintaining the index can limit performance when changes are applied at the Subscriber. For example, a subscription database that is used for reporting purposes may have many more indexes than the publication database. Dynamically building the UPDATE statement at run time can improve performance. The update includes only the columns that have changed, creating an optimal UPDATE string.
This service pack includes a new stored procedure, sp_scriptdynamicupdproc, which generates a custom stored procedure that you can use at the Subscriber to dynamically build the UPDATE statement at run time. However, building the dynamic UPDATE statement at run time requires extra processing.
sp_scriptdynamicupdproc is documented in the latest copy of the SQL Server 2000 Books Online. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic for sp_scriptdynamicupdproc.
Introduced in SP1
When setting up nosync subscriptions (that is, subscriptions that do not receive the initial snapshot), the custom stored procedures for INSERT, UPDATE, and DELETE statements must be created manually. Typically, these statements are created at the Subscriber when the initial snapshot is delivered. A new stored procedure, sp_scriptpublicationcustomprocs, has been added to generate scripts for the custom stored procedures at the publication level. This new functionality may make it easier to set up nosync subscriptions.
sp_scriptpublicationcustomprocs is documented in the latest copy of the SQL Server 2000 Books Online. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic for sp_scriptpublicationcustomprocs.
Introduced in SP1
When merge replication system tables contain large amounts of meta data, cleaning up the meta data improves performance. Prior to SQL Server 2000 SP1, meta data could be cleaned up only by running sp_mergecleanupmetadata. However, SQL Server 2000 SP1 and later versions include retention-based meta data clean up, which means that meta data can be automatically deleted from the following system tables:
Note Before image tables are present if the @keep_partition_changes synchronization optimization option is enabled on the publication.
Retention-based meta data clean up occurs as follows:
Note -MetadataRetentionCleanup parameter is set to 1 for all Merge Agent profiles that are included with SQL Server 2000 SP1 and later versions. If you upgrade a server to SP1 or later and then add merge replication, the Merge Agent profile is automatically updated to include this parameter. If you upgrade a server that already has merge replication enabled to SP1 or later, the Merge Agent profile is not automatically updated; update the profile by running sp_add_agent_parameter (see Additional Parameter for sp_add_agent_parameter later in this section).
Important The default retention period for publications is 14 days. If an article belongs to several publications, there might be different retention periods. In that situation, the longest retention period is used to determine the earliest possible time that clean up can occur. If there are multiple publications on a database, and if any one of those publications uses an infinite publication retention period (@retention=0), merge meta data for the database is not automatically cleaned up. For this reason, use infinite publication retention with caution.
The system stored procedure sp_add_agent_parameter now has a MetadataRetentionCleanup parameter, which allows you to add or remove meta data retention clean up from Merge Agent profiles. A value of 1 indicates that the profile should include clean up; a value of 0 indicates that it should not include clean up. For example, to add meta data retention clean up to a profile, execute the following code:
EXEC sp_add_agent_parameter @profile_id=<my_profile_id>,
@parameter_name='MetadataRetentionCleanup', @parameter_value=1
For automatic retention-based clean up to occur in a database involved in merge replication, the database and the Merge Agent must both be on servers running SQL Server 2000 SP1 or later. For example:
Automatic clean up on some servers and not on others will at most cause false conflicts, and those should be rare. For topologies that include versions of SQL Server prior to SQL Server 2000 SP1, you may see performance benefits by running sp_mergemetadatacleanup on all servers that are not cleaned up automatically.
Retention-based meta data clean up prevents non-convergence and silent overwrites of changes at other nodes. However, false conflicts can occur if the following conditions are met:
For example, if meta data is cleaned up at the Publisher but not at the Subscriber, and an update is made at the Publisher, a conflict occurs even though the data appears to be synchronized.
To prevent this conflict, make sure that meta data is cleaned up at related nodes at about the same time. If -MetadataRetentionCleanup is set to 1, both the Publisher and Subscriber are cleaned up automatically before the merge starts, thereby ensuring that the nodes are cleaned up at the same time. If a conflict occurs, use the merge replication conflict viewer to review the conflict and change the outcome if necessary.
If an article belongs to several publications or is in a republishing scenario, it is possible that the retention periods for a given row at the Publisher and Subscriber are different. To reduce the chance of cleaning up meta data on one side but not the other, it is recommended that those different publications have similar retention periods.
Note If the system tables contain large amounts of meta data that must be cleaned up, the merge process may take longer to run. Clean up the meta data on a regular basis to prevent this issue.
Introduced in SP1
A publication database that is restored from a backup should first synchronize with a subscription database that has a global subscription (that is, a subscription having an assigned priority value) to guarantee correct convergence behavior. Synchronization ensures that the changes that were lost at the publication database because of the restore operation are reapplied accurately.
Do not synchronize the publication database with a subscription database that has an anonymous subscription. Because anonymous subscriptions do not have enough meta data to apply changes to the publication database, such synchronization can lead to the non-convergence of data.
When you are planning back up and restore operations for merge replication, consider the following additional issues:
Restore a subscription database from a backup only if the backup is no older than the shortest retention period of all publications to which the Subscriber subscribes. For example, if a Subscriber subscribes to three publications with retention periods of 10, 20, and 30 days, respectively, the backup used to restore the database should not be more than 10 days old.
It is strongly recommended that a Subscriber synchronize with the Publisher before you perform a backup. Otherwise, the system might not converge correctly if the Subscriber is restored from this backup. Although the backup file itself might be new, the last synchronization with a Publisher could be almost as old as the retention period. For example, consider a publication with a retention period of 10 days. The last synchronization was 8 days ago, and now the backup is performed. If the backup is applied 4 days later, the last synchronization will have occurred 12 days ago, which is past the retention period. If the Subscriber had synchronized right before the backup, the subscription database would be within the retention period.
If you need to change the publication retention value, manually reinitialize the Subscriber to avoid the non-convergence of data. The retention-based meta data clean up feature deletes outdated meta data from merge system tables when the publication retention period is reached.
The publication retention value is used to determine when subscriptions that have not synchronized within the retention period should expire. If, after a clean up, the publication retention period is increased and a subscription attempts to merge with the Publisher (which has already deleted the meta data), the subscription will not expire because of the increased retention value. Furthermore, the Publisher does not have enough meta data to download changes to the Subscriber, which leads to non-convergence.
Introduced in SP1
Restoring a backup to the same server and databaserunning the same version as the server from which the backup was createdpreserves your replication settings. If you are restoring a replicated database to a version of SQL Server that is different from the version used to back up the database, consider the following issues:
Introduced in SP2.
During normal processing, merge replication can send DELETE commands to Subscribers for rows that do not belong to the Subscriber's partition. DELETE commands of this type are referred to as irrelevant deletes. Irrelevant deletes do not affect data integrity or convergence, but they can result in unnecessary network traffic.
To reduce network traffic caused by irrelevant deletes, you can use the new Snapshot Agent parameter
-MaxNetworkOptimization with merge replication publications. Setting the parameter to 1 minimizes the chances of irrelevant deletes, which maximizes network optimization.
Note Setting this parameter to 1 is useful only when the synchronization optimization option of the merge publication is set to true (the @keep_partition_changes parameter of sp_addmergepublication).
The default is 0 because setting the parameter to 1 can increase the storage of meta data and cause performance to degrade at the Publisher if multiple levels of join filters and complex subset filters are present. You should carefully assess your replication topology and set -MaxNetworkOptimization to 1 only if network traffic from irrelevant deletes is unacceptably high.
You can add this parameter to the Snapshot Agent profile by executing the system procedure sp_add_agent_parameter as follows:
EXEC sp_add_agent_parameter 1, 'MaxNetworkOptimization', 1
Introduced in SP3
SP3 and later automatically creates a new role for use by merge replication. The name of the new role is in the form MSmerge-<publication ID>. The role is created on the Publisher for each merge replication publication and acts as the publication access list (PAL) to control access to merge publications on the Publisher. If this role is dropped, you can run a new stored procedure included with SP3 or later, sp_createmergepalrole, to re-create the role. This stored procedure is executed at the Publisher on the publication database to re-create the role.
sp_createmergepalrole is documented in the latest copy of the SQL Server 2000 Books Online. For information about installing the latest version of the SQL Server 2000 Books Online, see section 1.8 Updates to SQL Server 2000 Books Online Are Available. This is an English-language copy of the reference topic for sp_createmergepalrole.
Introduced in SP3
If a subscription is created by a user who is not a member of the sysadmin fixed server role, you must do one of the following:
Note The remote agent activation feature always requires the job step to run in the context of a user account in the sysadmin fixed server role.
Introduced in SP3
Permissions have been changed on a number of the stored procedures used to implement, administer, and monitor a replication topology. Most of these changes involve a tightening of the permissions that are required to run the stored procedures. For more information about the new permissions, review the Transact-SQL reference documentation for the replication stored procedures in the updated version of SQL Server Books Online. For more information about the updated SQL Server Books Online, see Section 1.8 Updates to SQL Server 2000 Books Online Are Available.
Introduced in SP3
A new parameter, @published_in_tran_pub, has been added to both sp_addmergearticle and sp_changemergearticle. This parameter is used to indicate that an article in a merge publication is also published in a transactional publication. @published_in_tran_pub is nvarchar(5), with a default of FALSE. TRUE specifies that the article is also published in a transactional publication.
Note When you change this parameter in sp_changemergearticle, the snapshot must be invalidated and subscribers must be reinitialized.
Introduced in SP3
SQL Server allows you to enable existing subscriptions (created using SQL Server Enterprise Manager, SQL-DMO, and replication stored procedures) for use with Windows Synchronization Manager. You can also create new subscriptions using Windows Synchronization Manager. After you apply the service pack, when synchronizing a subscription, Windows Synchronization Manager will prompt you to enter the password or passwords required to connect to the servers involved in the synchronization.
Introduced in SP3
Under a certain set of conditions, replication could malfunction in the process of attaching or restoring a published database. These conditions are:
If all of these conditions are true, you should execute the sp_changedbowner stored procedure on the attached or restored database. Assign ownership to the sa built-in administrator login. This will ensure that replication functions correctly.
Note You must be a member of the sysadmin fixed server role to execute sp_changedbowner .
For more information about cross-database ownership chaining, see Section 5.1.8 Cross-Database Ownership Chaining.
Introduced in SP4
Replication ActiveX® controls (sqlinitx.dll, sqldistx.dll, sqlmergx.dll, and replerrx.dll) are no longer designated as "safe for scripting" and "safe for initialization." The security and functional behaviors of the controls have not changed since SP3; however, the security designations have been changed to meet security standards. These changes may affect applications that invoke embedded replication ActiveX controls in a Web page.
Introduced in SP4
A new parameter, @compensate_for_errors, can be specified when calling sp_addmergearticle. The parameter specifies whether compensating actions are taken if errors (such as a constraint violation) are encountered during synchronization. When set to TRUE (the default), a change that cannot be applied at a node during synchronization leads to compensating actions that undo the change at all other nodes. In some cases this behavior is desirable, but in some cases it can be problematic; for example, one incorrectly configured Subscriber that generates an error can cause changes to be undone at the Publisher and all other Subscribers.
Specifying a value of FALSE disables these compensating actions; however, the errors are still logged and subsequent merges will continue to attempt to apply the changes. Although data in the affected rows might appear to be out of convergence, as soon as you address the error the change can be applied, and data will converge.
Note If the source table for an article is already published in another publication, then the value of @compensate_for_errors must be the same for both articles.
Introduced in SP4
In previous releases, identity columns in transactional publications were replicated as the base data type, such as int, without the identity property set. This approach is appropriate for applications that do not allow inserts at the Subscriber. SQL Server 2000 SP4 introduces a new schema option (0x4) for transactional publications, which is used to replicate the identity column as an identity column. This is useful in a number of cases, including bidirectional replication and using the Subscriber as a warm standby server. In these cases, inserts can occur at the Subscriber, and the inserts result in the identity column being incremented.
To specify that an identity column should be replicated as an identity column:
USE Northwind
GO
DBCC CHECKIDENT ('Employees', RESEED, 1000000)
GO
For more information, see DBCC CHECKIDENT in SQL Server Books Online.
Introduced in SP4
Distributor instances of SQL Server 2000 (32-bit) running in Windows-on-Windows 64 mode on Windows 2003 SP1 systems running on X64 or compatible processors cannot have non-SQL Server Subscribers. Although running Windows-on-Windows 64 mode is now supported for SQL Server 2000 SP4, this mode is not supported by drivers or providers used to connect from the Distributor to the non-SQL Server Subscriber.
This section discusses enhancements to SQL Server Agent that are included in SP4.
Introduced in SP2
The SQL Server Agent Job History now records the Windows account under which each job step runs. This information helps administrators diagnose security issues with scheduled jobs, including scheduled jobs that are defined for replication and Data Transformation Services (DTS) tasks.
Introduced in SP3
MSDE 2000 now checks to ensure that the Agent job owner has permission to append or overwrite the output log file from each job. This happens in three ways:
In all cases, jobs are written with SQL Server Agent credentials, but MSDE 2000 now tests to ensure the user has permission to write to the selected job output log file location on the server. Errors appear in the job history, but the job steps do not fail if the log file cannot be written.
Introduced in SP3
In MSDE 2000 and the 32-bit version of SQL Server 2000, SQL Agent Mail can be configured to use an Extended MAPI e-mail profile for sending e-mail alerts. You can use an Extended MAPI e-mail application, such as Microsoft Outlook, to create an Extended MAPI profile. In the 64-bit version of SQL Server 2000, SQL Agent Mail can only use a Simple MAPI profile for sending e-mail alerts. Do not use Simple MAPI profiles in MSDE 2000 or the 32-bit version of SQL Server 2000.
The following topic discusses an enhancement for XML and SQLXML in SP4.
Introduced in SP3
When you apply SP4, OPENXML is updated to use a custom-built XML parsing technology designed to be backward compatible with MSXML 2.6.
Prior to SP3, the version of the XML parser used by OPENXML permitted a predicate in an XPath expression to follow the special character abbreviation that identifies the current context node, which is denoted by a period (.
) in XPath syntax. This violates the XPath syntax specification, which requires that this character be followed by a location path expression.
With the new OPENXML behavior, a predicate cannot immediately follow the current context node abbreviation special character. XPath expressions in SQLXML queries (XPath queries against annotated mapping schemas and in XSLT style sheets written to transform the results of SQLXML queries) that use the faulty syntax will fail after you upgrade to SP3 or later.
To prevent these failures, identify and fix any expressions that use the incorrect syntax. For example, the syntax of the XPath expression that is specified as the value of the test attribute in the following xsl:if
element is not valid because the predicate, [@ResourceTypeID='2']
, immediately follows the special character abbreviation that identifies the current context node.
The following statement, which previously did not generate an error, will fail after SP3 or later is installed.
<xsl:if test=".[@ResourceTypeID='2']">
To prevent a failure, the XPath expression must be amended as follows:
<xsl:if test="@ResourceTypeID='2'">
Introduced in SP1, updated for SP4
While the DB-Library and Embedded SQL for C APIs are still supported in SQL Server 2000 and MSDE 2000, no future versions of SQL Server will include the files or documentation that are necessary to program applications that use these APIs. Connections from existing applications written using DB-Library and Embedded SQL for C will still be supported in the next version of SQL Server, but this support will be dropped in a future release. Do not use DB-Library or Embedded SQL when writing new applications. Remove dependencies on these technologies when modifying existing applications. Instead of DB-Library or Embedded SQL for C, use the system.data.SQLClient namespace from the .NET Framework or an API such as ADO, OLE DB, or ODBC to access data in SQL Server. For more information about these technologies, see SQL Server Books Online or the .NET Framework SDK.
The following topic describes an enhancement to MSDE 2000 Setup.
Introduced in SP4
MSDE 2000 SP4 introduces a new SAVESYSDB parameter for MSDE 2000 Setup. The SAVESYSDB parameter is intended to be used when upgrading instances of MSDE 2000 that were installed using merge modules or MSI files to future versions of SQL Server 2005 Express Edition. SAVESYSDB will be used in conjunction with a new feature planned for future versions of SQL Server Express. SAVESYSDB is only valid when uninstalling an instance by running MSDE 2000 Setup at the command prompt.
By default, MSDE 2000 Setup deletes the files of the master, model, and msdb system databases when you uninstall an instance of MSDE 2000. When you specify SAVESYSDB=1, MSDE 2000 Setup leaves the files for these system databases in place.
While SAVESYSDB can be specified at any time, it is only processed when used with the /x uninstall switch:
Setup /x sqlrun01.msi SAVESYSDB=1 INSTANCENAME="MyInstance"
SAVESYSDB is ignored if /x is not specified. If both SAVESYSDB and /x are specified, SAVESYSDB must be set to 1, setting it to any other value generates an error.
Introduced in SP4
SQL Server 2000 SP4 introduces new serviceability functionality that enables you to uninstall hotfixes applied to SP4 and later versions of SQL Server 2000 running on Windows XP and Windows Server 2003. (This same functionality was available with SQL Server 2000 SP3, but only after the application of an additional hotfix).