# Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A

##### 2003 年 10 月 13 日

© Microsoft Corporation，2003。保留所有权利。

Microsoft® SQL Server™ 文档小组不能解答技术支持问题，但是欢迎您就本自述文档提出建议和意见。通过下面的链接可以快速并直接发送电子邮件反馈。在提交反馈时请使用英文书写。
要提交有关本文档的书面反馈，请单击此处：提交反馈。

# 目录

1.0 简介

1.1 MSDE 2000 文档

1.2 有关 MSDE 2000 Release A 的附加信息

2.0 下载并解压缩 MSDE 2000 Release A

3.0 安装 MSDE 2000 Release A

3.1 MSDE 2000 安装文档

3.2 安装先决条件

3.3 在安装 MSDE 2000 Release A 之前停止服务

3.4 安装 MSDE 2000 Release A

3.4.1 验证 Microsoft 数据访问组件的版本

3.4.2 MSDE 2000 Release A 的安全注意事项

3.4.3 MSDE 2000 安装参数

3.4.4 MSDE 2000 Release A 安装示例

3.5 重新启动服务

4.0 文档说明

4.1 Desktop Engine 增强功能

4.1.1 分布式查询的扩展错误消息

4.1.2 调试功能更改

4.2 复制增强功能

4.2.1 唯一列上的事务复制 UPDATE 语句

4.2.2 非唯一聚集索引的限制

4.2.3 附加或还原复制数据要求的更改

4.3 SQL Server 代理增强功能

4.3.1 SQL Server 代理记录帐户信息

4.3.2 SQL Server 代理权限检查

4.3.3 SQL 代理邮件 MAPI 配置文件

4.4 面向 C 语言的 DB-Library 和嵌入式 SQL

# 1.0 简介

Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A 是 MSDE 2000 的可下载版本，其中提供的新最终用户许可协议 (EULA) 赋予了用户不同于以前的 MSDE 2000 许可证所赋予的权利。

下载 MSDE 2000 Release A 文件并将其解压缩之后，便可使用 Desktop Engine Setup.exe 来安装 MSDE 2000 Release A 实例。Desktop Engine Setup.exe 是一个命令提示实用工具，没有用户界面。而应该使用命令提示开关或 .ini 文件来指定安装选项。

完成安装之后，MSDE 2000 Release A 便可起到与 MSDE 2000 Service Pack (SP) 3a 一样的作用。但 MSDE 2000 Release A 与 MSDE 2000 SP3a 之间存在下列区别：

- MSDE 2000 Release A EULA 是一种新的最终用户许可协议。
- MSDE 2000 Release A 不能用来升级 MSDE 的早期版本，只能用来安装新的 MSDE 2000 Release A 实例。使用 SQL Server 2000 Service Pack 文件中的 MSDE 组件可以：
  - 将 MSDE 1.0 升级为 MSDE 2000。
  - 对 MSDE 2000 实例应用最新的 Service Pack。例如，使用 SQL Server 2000 SP3a 中的 MSDE 组件可以将 MSDE 2000 SP1 或 MSDE 2000 SP2 实例升级为 MSDE 2000 SP3a。

  最新的 SQL Server 2000 Service Pack 文件可以从该网站获取。MSDE 2000 Release A 中不包括合并模块（有时会需要使用这种合并模块在应用程序安装实用工具中嵌入 MSDE 2000 早期版本）。要随应用程序一起分发 MSDE 2000 Release A 文件，必须编写应用程序安装包装实用工具，以便：

  - 调用 Desktop Engine Setup.exe 来安装 MSDE 2000 Release A 实例。
  - 安装应用程序。

  有关分发 MSDE 2000 Release A 的更多信息，请参见该 Microsoft 网页。

- 包含一个新的自述文件 ReadmeMSDE2000A.htm。

MSDE 2000 Release A 中包含的修补程序与 MSDE 2000 SP3a 中的相同，包括那些用于解决 Slammer 蠕虫所引发的问题的修补程序。不需要对 MSDE 2000 Release A 应用 MSDE 2000 SP3a，也不需要从 MSDE 2000 SP3a 或 SP3 升级为 MSDE 2000 Release A。

MSDE 2000 Release A 与 MSDE 2000 SP3a 返回的版本信息相同。@@VERSION 与 SERVERPROPERTY('ProductVersion') 报告的内部版本号为 8.00.760。SERVERPROPERTY('ProductLevel') 返回 SP3。@@VERSION 和 SERVERPROPERTY('Edition') 报告的版本为 Desktop Engine。

[返回页首]

# 1.1 MSDE 2000 文档

SQL Server 2000 联机丛书是包含有关 MDSE 2000 的信息的主要文档集。最新版本的联机丛书包含有关 MSDE 2000 的更新信息。可以从下列位置获取最新版本联机丛书：

- MSDN Library。可以从该网站获取最新版本的联机丛书。
- 联机丛书下载网站。可以从该网站定期获取有关联机丛书的更新信息（可下载文件集的形式）。

2003 年 7 月更新了联机丛书，以便介绍 MSDE 2000 SP3a 中引入的新功能。本文档也适用于 MSDE 2000 Release A，但目前只能通过 MSDN Library 获取。

有关 MSDE 2000 的附加信息将包括在新的 SQL Server 2000 联机丛书更新版本中，该更新版本将于 2003 年 12 月发布在联机丛书下载网站中，并将于 2004 年 1 月发布在 MSDN Library 中。此更新版本将命名为“SQL Server 2000 联机丛书（更新 － 2004）”。

有关 MSDE 2000 的附加信息，可以从 Microsoft MSDE 2000 网站获取。

因为 MSDE 2000 Release A 的功能与 MSDE 2000 SP3a 相同，所以有关 MSDE 2000 SP3a 的参考文档也适用于 MSDE 2000 Release A。但有一些例外，即 MSDE 2000 Release A 不支持以下 MSDE 2000 SP3a 功能：

- 从 MSDE 早期版本升级。
- MSDE 2000 合并模块的使用。

在任何 SQL Server 2000 文档中，有关 MSDE 2000 中包括的组件（数据库引擎、数据库客户端连接组件和程序设计 API、复制以及数据转换服务）的参考文档同样也适用于 MSDE 2000 Release A，但 MSDE 2000 中不包括的功能除外。

MSDE 2000 Release A 版本的 Setup.exe 将安装来自 SQL Server 2000 原始版本的 readme.txt 文件。 该 readme.txt 副本并不包括与 MSDE 2000 Release A 有关的信息。请阅读自述文件 ReadmeMSDE2000A.htm 了解有关 MSDE 2000 Release A 的信息。

##### 提供了更新过的 SQL Server 示例

可以从该 Microsoft 网站获取针对 SP3 和 SP3a 更新过的 SQL Server 2000 数据库引擎示例。引用了 MSDE 2000 中所包括的 SQL Server 2000 组件（数据库引擎、数据库客户端连接组件和程序设计 API、复制以及数据转换服务）的所有示例同样适用于 MSDE 2000 Release A，但 MSDE 2000 中不支持的功能除外。

[返回页首]

# 1.2 有关 MSDE 2000 Release A 的附加信息

任何未能及时包括在本自述文件中的有关 MSDE 2000 Release A 的信息都将发布在 Microsoft 知识库文章 829925 中。

MSDE 2000 Release A 包含 MSDE 2000 SP3a 中包括的所有修补程序。可以从 Microsoft 知识库文章 306908 获取 SQL Server 2000 SP3a 中包含的修补程序列表。

### QFE 修补程序

MSDE 2000 Release A 包括在 MSDE 2000 SP3a 中已经解决的、已公开发布的所有 SQL Server 2000 SP2 安全公告。

如果您于 2002 年 10 月 14 日之后收到过 MSDE 2000 热修补程序，则该热修补程序可能未包括在 MSDE 2000 Release A 中。请与您的主要产品支持提供商联系，以获取用于 MSDE 2000 Release A 的同一热修补程序。

### SQL Server CE 服务器工具更新

如果已经建立或计划建立包括以下两项的复制拓扑，还应更新 Microsoft Internet 信息服务 (IIS) 服务器上的服务器复制组件：

- Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE) 和
- 运行 MSDE 2000 Release A 的数据库和发布服务器。

可以从该 Microsoft 网站获取更新的 SQL Server CE 服务器工具安装程序。

[返回页首]

# 2.0 下载并解压缩 MSDE 2000 Release A

MSDE 2000 Release A 是以一个名为 MSDE2000A.exe 的可下载自解压文件的形式提供的。下载 MSDE2000A.exe 之后，便可在计算机上运行该文件，这将在磁盘或网络共享上创建一组文件夹和文件。完成文件解压缩之后，即可从磁盘上的文件夹安装 MSDE 2000 Release A。

下载并解压缩 MSDE 2000 Release A 安装文件时，应遵循下列准则：

- 下载 MSDE2000A.exe，并将其放置在准备安装 MSDE 2000 Release A 的计算机或网络共享上的某文件夹中。从该文件夹运行自解压文件。自解压缩程序将提示您输入要放置安装文件的文件夹的名称。

  > 说明 将安装文件解压缩到网络共享中时，指定的文件夹路径是该自解压缩程序所在文件夹的相对路径。

- 存放下载的安装文件的本地驱动器或网络共享驱动器上必须具有大约三倍于自解压缩文件大小的可用空间。其中包括存储该自解压缩文件的空间、存储解压缩后的安装文件的空间以及自解压缩程序本身所需的足够的临时工作空间。
- 对组件进行解压缩后，可以重命名或移动该文件夹；但请确保目录路径名中不含空格。

> 说明 MSDE 2000 中的某些文件是系统文件。要查看系统文件，请在 Windows 资源管理器的“查看”菜单中，单击“选项”，再单击“查看”选项卡，然后选中“显示所有文件”复选框。

##### 下载 MSDE 2000 Release A

要下载 MSDE 2000 Release A 文件，请执行下列步骤：

- 转至 MSDE 2000 下载网站。
- 在该页右上角的“完整下载”框中，选择 MSDE 2000 实例要使用的语言，然后单击“Go”。
- 在下一页中，定位到底部的“此下载中包括的文件”部分。根据前面选择的语言，选择下列文件之一：
  - 如果选择的是英语，则可将 MSDE2000A.exe 文件下载到计算机上的某个文件夹中。
  - 如果选择的是其他语言，则可下载文件 LLL_MSDE2000A.exe，其中 LLL 代表选定的语言。

##### 解压缩 MSDE 2000 Release A 安装文件

下载 MSDE2000A.exe 或 LLL_MSDE2000A.exe 之后，必须解压缩 MSDE 2000 Release A 安装文件：

- 打开 Windows 资源管理器，然后导航至存放 MSDE 2000 Release A 下载文件（MSDE2000A.exe 或 LLL_MSDE2000A.exe，其中 LLL 代表选定的语言）的文件夹。
- 双击下载文件以解压缩 MSDE 2000 Release A 安装文件。根据提示，指定存放解压缩的安装文件的文件夹。

[返回页首]

# 3.0 安装 MSDE 2000 Release A

要安装 MSDE 2000 Release A，请按照以下各节中的说明执行。

##### 安装 MSDE 2000 Release A 之前

如果某个应用程序将使用 MSDE 2000 Release A 实例，则应首先检查该应用程序提供程序或应用程序文档，以验证该应用程序是否能够在 MSDE 2000 Release A 上正常运行。

如果在使用终端服务连接时试图安装新的 MSDE 2000 Release A 实例，则可能会出现问题。如果遇到问题，请从本地计算机重新启动安装程序，而不要使用终端服务。

[返回页首]

# 3.1 MSDE 2000 安装文档

可以在 SQL Server 2000 联机丛书中找到有关 Desktop Engine Setup.exe 的文档。MSDN Library 文档中最新版本的 SQL Server 2000 联机丛书介绍了 MSDE 2000 Release A 中 Desktop Engine Setup.exe 的行为。请参见“Customizing Desktop Engine Setup.exe”（自定义 Desktop Engine Setup.exe）。

“Customizing Desktop Engine Setup.exe”（自定义 Desktop Engine Setup.exe）介绍了 MSDE 2000 SP3a 中包括的 Setup.exe 的功能。因为 MSDE 2000 Release A 中包括的是同一 Setup.exe，只是不支持升级，而该主题描述了以下 MSDE 2000 Release A 不予支持的开关和参数：UPGRADE、UPGRADEUSER、UPGRADEPWD 或 /upgradesp。

该主题将在 2004 年 1 月于 MSDN 中发行的版本中得到更新。有关此 SQL Server 2000 联机丛书更新的更多信息，请参见 1.1 MSDE 2000 文档。

像在最初版本的 SQL Server 2000 联机丛书中，早期版本的“Customizing Desktop Engine Setup.exe”描述的原始版本的 Desktop Engine Setup.exe 的行为与 MSDE 2000 Release A 中包括的 Desktop Engine Setup.exe 的行为极为不同。

[返回页首]

# 3.2 安装先决条件

试图安装 MSDE 2000 Release A 之前，您的计算机必须满足 SQL Server 2000 的硬件要求和软件要求。

##### 硬件要求

下表列出了安装并运行 MSDE 2000 的硬件要求。

硬件 | 最低要求
计算机 | Intel Pentium 或兼容机，166 MHz 或更高
内存 (RAM) | Windows XP 要求 128 MB Windows 2000 要求 64 MB 其他操作系统至少要求 32 MB
硬盘空间 | 44 MB
驱动器 | CD-ROM 驱动器

MSDE 2000 没有硬件兼容性列表 (HCL)。如果计算机满足上表所列的最低要求，MSDE 2000 软件即可在经鉴定能够随 Microsoft Windows 操作系统使用的硬件上运行。有关经鉴定能够随 Windows 操作系统使用的硬件的更多信息，请参见该 Microsoft 网站上的 Microsoft Windows 硬件兼容性列表。

##### 操作系统要求

要使用 MSDE 2000，必须已安装下列操作系统之一：

- Windows Server 2003 Standard Edition、Windows Server 2003 Enterprise Edition、Windows Server 2003 Datacenter Edition。
- Windows 2000 Server、Windows 2000 Advanced Server、Windows 2000 Datacenter Server。
- Windows NT Server 4.0（SP5 或更高版本）；Windows NT Server 4.0 Enterprise Edition（SP5 或更高版本）；Windows NT Workstation 4.0（SP5 或更高版本）。
- Windows XP Professional Edition、Windows XP Home Edition。
- Windows 2000 Professional。
- Windows Millennium Edition。
- Windows 98。如果计算机没有网卡，则要求 Windows 98 第二版。

##### 软件要求和系统要求

MSDE 2000 要求安装 Microsoft Internet Explorer 5.0 或更高版本。最小安装便已足够，Internet Explorer 不必是默认浏览器。

除 Windows 98 和 Window Millennium Edition 外，必须启用文件和打印机共享，以便运行 Desktop Engine Setup.exe。要验证这一点，请执行下列操作：

1. 在“控制面板”中，双击“网络连接”。
2. 在“高级”菜单中，单击“高级设置”。
3. 在“适配器和绑定”选项卡上，确定选中了“Microsoft 网络的文件和打印机共享”。

如果下列任一安全策略已被设置为“禁止安装”，则 MSDE 2000 Release A 安装将失败：

- Windows XP 的本地安全策略“设备：未签名驱动程序的安装操作”。
- Windows 2000 的本地安全策略“未签名非驱动程序的安装操作”。

如果使用了“禁止安装”设置，则必须在安装 MSDE 2000 Release A 之前将该设置更改为“默认继续”。如有必要，可以在完成安装之后将该策略还原为以前的设置。

> 说明 “禁止安装”不是这些安全策略的默认设置。

要设置这些策略，请执行下列操作：

1. 在“控制面板”中，双击“管理工具”。
2. 双击“本地安全策略”。
3. 展开“本地策略”。
4. 选中“安全选项”。
5. 确保在安装 MSDE 2000 Release A 之前，右窗格中的下列选项被设置为“默认继续”：
   - 对于 Windows NT 和 Windows 2003：“设备：未签名驱动程序的安装操作”。
   - 对于 Windows 2000：“未签名非驱动程序的安装操作”。

在运行 Windows NT 4.0 SP6a 的计算机上安装 MSDE 2000 Release A 时，必须应用 Microsoft 知识库文章 258437 中介绍的热修补程序。

在法语版 Windows NT 4.0 上安装 MSDE 2000 Release A 之前，请遵循知识库文章 259484 中的说明进行操作。

[返回页首]

# 3.3 在安装 MSDE 2000 Release A 之前停止服务

安装 MSDE 2000 Release A 时，可以不关闭服务。但是，如果不关闭服务，安装程序完成时将提示您重新启动计算机。如果不重新启动，则无法启动下列服务：

- Microsoft 分布式事务处理协调器 (MS DTC)、Microsoft 搜索服务以及 MSSQLServerOLAPService 服务。
- Microsoft 组件服务、Microsoft 消息队列和 Microsoft COM 事务集成器。
- 包括“控制面板”在内的所有应用程序。（可选）

如果在运行 MSDE 2000 Release A 安装程序之前停止了这些服务和应用程序，则可以减少完成安装后要求重新启动计算机的可能性。

[返回页首]

# 3.4 安装 MSDE 2000 Release A

请运行 Desktop Engine Setup.exe 来安装 MSDE 2000 Release A。3.4.4 MSDE 2000 Release A 安装示例中列举了一些典型的安装过程示例。

一台计算机上最多可以安装 16 个 MSDE 2000 和 SQL Server 2000 数据库引擎的副本或实例。其中一个实例没有名称，被称为默认实例。其他 15 个实例必须具有唯一的实例名称，被称为命名实例。安装新的 MSDE 2000 Release A 实例时，请使用 Desktop Engine Setup.exe INSTANCENAME 参数来指定命名实例的名称。如果未指定实例名称，安装程序将试图安装默认实例。实例名称必须遵循该 Microsoft 网页中包含的规则。

安装 MSDE 2000 Release A 时，不要指定现有 MSDE 2000 实例或 SQL Server 2000 实例的名称。要查找计算机上的现有实例，请执行下列操作：

1. 在 Windows 资源管理器中，用鼠标右键单击“我的电脑”，然后单击“管理”。
2. 展开“服务和应用程序”。
3. 单击“服务”。

默认实例将作为名为“MSSQLSERVER”的一项服务列在右窗格中。命名实例将作为 MSSQL$InstanceName 服务列出，其中 InstanceName 是实例的名称。

MSDE 2000 Release A 只能用来安装新的 MSDE 2000 实例。不要使用该程序来升级运行 MSDE 2000 早期版本的实例。运行 MSDE 2000 Release A 版本的 Desktop Engine Setup.exe 时，不要使用以下开关或参数：UPGRADE、UPGRADEUSER、UPGRADEPWD 或 /upgradesp。使用 SQL Server 2000 SP3a 可以将现有的 MSDE 2000 实例升级为 MSDE 2000 SP3a。有关升级的更多信息，请参见 1.0 简介。

请始终通过运行 Setup.exe 来启动 Desktop Engine Setup.exe。不要通过直接调用某个 MSDE 2000 .msi 文件（如双击某个 MSDE 2000 .msi 文件）来安装 MSDE 2000。必须从命令提示符运行安装程序，并指定用来安装或升级任意 MSDE 实例的参数。

可以从硬盘驱动器、网络共享或 CD-ROM 运行 Desktop Engine Setup.exe。如果要创建自己的 MSDE 2000 Release A 安装 CD-ROM，则该 CD-ROM 的卷标必须是 SQL2KSP3。对于独立软件供应商 (ISV)，如果准备创建 CD-ROM 以便将 MSDE 2000 Release A 作为应用程序的一个组件进行分发，则 CD-ROM 的卷标必须与 Windows 安装程序包 (*.msi) Media 表中的 VolumeLabel 属性值相同。

如果使用的是 Windows Installer 2.0.2600.0 或更高版本，则只能从 CD-ROM 安装 Desktop Engine 的升级版。如果需要升级 Windows 安装程序，可以使用 MSDE 2000 Release A 中附带的升级 Windows 安装程序所需的文件。

升级 Windows 安装程序

1. 在 Windows 资源管理器中，导航至存放 MSDE2000A.exe 解压缩文件的文件夹中的 \MSDE\MSI 文件夹。
2. 对于 Windows 98 和 Windows Millennium Edition，请运行 InstMsi20.exe。对于 Windows 2000、Windows XP 和 Windows 2003，请运行 InstMsiW20.exe。
3. 根据提示重新启动计算机。

[返回页首]

# 3.4.1 验证 Microsoft 数据访问组件的版本

MSDE 2000 Release A 包含对 Microsoft 数据访问组件 (MDAC) 的更新。如果安装程序没有检测到 MDAC 2.7 SP1a 或更高版本，则在安装 MSDE 2000 Release A 时，还会安装 MDAC 2.7 SP1a。

在安装 MSDE 2000 Release A 之前或之后安装其他 MDAC 组件时，应考虑下列三种情况：

- 在运行 Windows XP 的计算机上安装 MSDE 2000 Release A 时，MDAC 2.7 不会更新为 MDAC 2.7 SP1a。如果系统需要 MDAC 2.7 SP1a 中包括的任何一个修补程序，则必须先应用 Windows XP SP1，然后安装 MSDE 2000 Release A。Windows XP SP1 将安装 MDAC 2.7，然后 MSDE 2000 Release A 将应用该版本所需的修补程序。
- 如果在 Windows 98、Windows Millennium Edition 或 Windows NT 4.0 上先安装了 MSDE 2000 Release A，后来又将计算机升级到了 Windows 2000 或 Windows XP，那么升级之后必须下载并安装 MDAC 2.7 SP1 Refresh。请从 Microsoft 数据访问下载页下载 MDAC 2.7 SP1 Refresh。您下载的版本的语言必须与计算机和 MSDE 2000 实例所用的语言相同。例如，如果在运行法语版操作系统的计算机上安装了法语版 MSDE 2000 实例，则应下载法语版的 MDAC 2.7 SP1a。
- 如果您安装的 MSDE 2000 Release A 的语言与操作系统的语言不同（例如，在运行俄语版 Windows 的计算机上安装了英语版的 MSDE 2000），则可能必须安装 MDAC 2.7 SP1 Refresh。如果计算机上安装的 MDAC 的版本低于 2.7 SP1a，则 Desktop Engine Setup 将安装 MDAC 2.7 SP1a 副本，以便更改 MDAC 组件的语言。为了确保这种情况不会发生，请在安装其语言不同于操作系统语言的 MSDE 2000 Release A 副本之前，首先检查计算机上的 MDAC 版本是否至少为 MDAC 2.7 SP1a。如果是比 2.7 SP1a 低的版本，请从Microsoft 数据访问下载页下载并安装 MDAC 2.7 SP1 Refresh。有关如何确定计算机上当前所用的 MDAC 的版本的说明，请参见知识库文章 301202。

有关 MDAC 2.7 SP1a 的更多信息，请参见 Microsoft 数据访问下载页。有关 MDAC 版本的更多信息，请参见知识库文章 822758。知识库文章 326848 中介绍了 MDAC 2.7 SP1a 中包括的修补程序。

[返回页首]

# 3.4.2 MSDE 2000 Release A 的安全注意事项

如果没有其他计算机上的应用程序需要与您的 MSDE 2000 实例连接，则该实例无需网络支持，而且最好关闭这些不需要的资源。默认情况下，Desktop Engine Setup.exe 不会在安装新的 MSDE 2000 Release A 实例时启用网络支持。安装过程中，可以使用 DISABLENETWORKPROTOCOLS=0 参数来启用网络支持。或者，如果在安装 MSDE 2000 Release A 实例时禁用了网络支持功能，稍后可以重新配置此实例以启用网络支持。有关禁用和还原网络访问的更多信息，请参见 Microsoft 知识库文章 814130。

默认情况下，除非使用 SAPWD 参数指定了一个强 sa 密码，否则 Desktop Engine Setup.exe 不会安装新的 MSDE 2000 实例。应该始终为 sa 登录指定一个强密码，除非使用 MSDE 实例的应用程序在某些方面依赖空的 sa 密码。即使 MSDE 2000 实例使用的是 Windows 身份验证，sa 登录也会在实例切换到混合模式时立即被激活。空、空白、简单或者众所周知的 sa 密码可能会被利用来进行未经授权的访问。如果在将 MSDE 2000 升级为 SP3a 之前需要指定一个强 sa 密码，请参见 Microsoft 知识库文章 322336。

有关强密码的更多信息，请参见 SQL Server 2000 联机丛书中的安全规则。

为了提高安全性，如有可能，请对 MSDE 2000 安装使用 Windows 身份验证。如果下列条件都为真，可以考虑从混合模式切换到 Windows 身份验证模式：

- 使用 MSDE 2000 的应用程序可以使用 Windows 身份验证运行。
- 已经为所有需要连接到该实例的用户定义了 Windows 身份验证登录。有关添加登录的更多信息，请参见 SQL Server 2000 联机丛书中的“添加 Windows 用户或组”。
- MSDE 2000 实例不是在 Windows 98 或 Windows ME 上运行。

有关将 MSDE 2000 实例从混合模式更改为 Windows 身份验证模式的更多信息，请参见 Microsoft 知识库文章 322336。

[返回页首]

# 3.4.3 MSDE 2000 安装参数

MSDE 2000 被设计为可以随应用程序一起分发并通过应用程序安装程序来安装。Desktop Engine Setup.exe 实用工具通常由应用程序的安装实用工具来调用，但也可以从命令提示符窗口运行。MSDE 2000 安装实用工具没有图形化用户界面。但它可以接受一组开关和参数，用于指定该实用工具应该执行的操作。

MSDE 2000 Release A 只能用来安装新的 MSDE 2000 实例。不要使用该程序来升级运行 MSDE 2000 早期版本的实例。运行 MSDE 2000 Release A 版本的 Desktop Engine Setup.exe 时，不要使用以下开关或参数：UPGRADE、UPGRADEUSER、UPGRADEPWD 或 /upgradesp。使用 SQL Server 2000 SP3a 可以将现有的 MSDE 2000 实例升级为 MSDE 2000 SP3a。有关升级的更多信息，请参见 1.0 简介。

本自述文档只讨论最常用的安装参数和开关。Desktop Engine Setup.exe 支持的所有开关和参数则详细记录在 SQL Server 2000 联机丛书中的“Customizing Desktop Engine Setup.exe”（自定义 Desktop Engine Setup.exe）。可以从该 Microsoft 网站找到描述 MSDE 2000 Release A 所包括的 Desktop Engine Setup.exe 的行为的相关主题。有关安装文档的更多信息，请参见 1.1 MSDE 2000 文档。

如果指定的 MSDE 安装参数值中包含特殊字符（如空格），则必须将该值放在双引号中。如果没有特殊字符，则引号是可选的。

通常只能使用下列安装参数来安装 MSDE 2000 Release A：

参数 | 描述
SAPWD="AStrongPassword" | 指定一个强密码以便分配给 sa 管理员登录。
INSTANCENAME="InstanceName" | 指定实例的名称。如果不指定 INSTANCENAME，则安装程序将安装默认实例。

用于调整安装的其他一些常用参数如下所示：

参数 | 描述
DISABLENETWORKPROTOCOLS=n | 指定实例是否接受在其他计算机上运行的应用程序的网络连接。默认情况或在指定 DISABLENTWORKPROTOCOL=1 的情况下，安装程序会将实例配置为不接受网络连接。如果指定 DISABLENETWORKPROTOCOLS=0，则会启用网络连接。
SECURITYMODE=SQL | 指定安装的实例将采用混合模式，在该模式下，实例既支持 Windows 身份验证登录，又支持 SQL 身份验证登录。
DATADIR="data_folder_path" | 指定安装程序用来安装系统数据库、错误日志和安装脚本的文件夹。为 data_folder_path 指定的值必须以反斜杠 (\) 结束。对于默认实例，安装程序将在指定值后追加 MSSQL\。对于命名实例，安装程序将在指定值后追加 MSSQL$InstanceName\，其中 InstanceName 是使用参数 INSTANCENAME 指定的值。安装程序会在指定位置创建三个文件夹：一个数据文件夹、一个日志文件夹和一个脚本文件夹。
TARGETDIR="executable_folder_path" | 指定安装程序用于安装 MSDE 2000 可执行文件的文件夹。为 executable_folder_path 指定的值必须以反斜杠 (\) 结束。对于默认实例，安装程序将在指定值后追加 MSSQL\Binn。对于命名实例，安装程序将在指定值后追加 MSSQL$InstanceName\Binn ，其中 InstanceName 是使用参数 INSTANCENAME 指定的值。

使用 DISABLENETWORKPROTOCOLS=0 对 MSDE 2000 实例启用网络支持功能时，通过网络与该实例连接的应用程序将使用 Microsoft 数据访问组件 (MDAC)。支持使用 MSDE 2000 的任何 Windows 版本都包括一个可以与 MSDE 2000 Release A 一起使用的 MDAC 软件。有关网络通讯的更多信息，请参见该 Microsoft 网页。

##### 使用 .ini 文件

可在以下两个位置指定 Desktop Engine Setup.exe 参数：

- 在命令提示符下运行 Setup.exe 时。
- 在由 /settings 开关指定的 .ini 文件中。.ini 文件是一个文本文件，如使用 Notepad 创建并使用扩展名 .ini 保存的文件。.ini 文件中的第一行是 [Options]，随后可以指定参数，一个参数占一行。

> 重要 如果安装时使用 .ini 文件，请不要将安全凭据存储在该文件中。

下例说明了如何在命令提示符下指定参数：

    setup SAPWD="AStrongPassword" INSTANCENAME="InstanceName" TARGETDIR="C:\MyInstanceFolder"

要通过 .ini 文件以便使用相同参数运行安装程序，请使用 Notepad 创建一个名为 MyParameters.ini 的文件，其内容如下：

    [Options]
    INSTANCENAME="InstanceName"
    TARGETDIR="C:\MyInstanceFolder"

然后在运行安装程序时，使用 /settings 开关指向该 .ini 文件：

    setup /settings "MyParameters.ini" SAPWD="AStrongPassword"

##### 请求安装程序日志

您需要使用一份详细日志来验证安装是否成功，或者帮助调试出现的任何问题。

要生成详细日志，请指定 /L*v <LogFileName>。<LogFileName> 是安装程序用来记录其所有操作的日志文件的名称。如果指定名称时没有包含路径，将在当前文件夹中创建日志文件。如果从光盘执行安装程序，则必须指定一个指向计算机硬盘上某个文件夹的完整路径。

下例将在 C 驱动器的根文件夹中创建一个名为 MSDELog.log 的日志文件：

    setup SAPWD="AStrongSAPassword" /L*v C:/MSDELog.log

如果安装成功，在日志末尾将显示如下所示的条目：

    === Logging stopped: 5/16/03  0:06:10 ===
    MSI (s) (BC:7C): Product: Microsoft SQL Server Desktop Engine -- Installation operation completed successfully.

如果安装不成功，在日志末尾将显示如下所示的条目：

    === Logging stopped: 5/15/03  23:50:34 ===
    MSI (c) (6A:CE): Product: Microsoft SQL Server Desktop Engine -- Installation operation failed.

如果安装失败，请在错误日志中搜索字符串“value 3”。该字符串的后 10 行是有关自定义操作的故障通知。该通知中包含有关故障本质的附加信息。

[返回页首]

# 3.4.4 MSDE 2000 Release A 安装示例

本节中的示例说明了如何执行 MSDE 2000 Release A 典型安装。

这些示例将安装新的 MSDE 2000 Release A 实例，并禁用其网络连接。如果您的实例必须接受来自其他计算机上运行的应用程序的连接，则还要指定 DISABLENETWORKPROTOCOLS=0。

这些示例在安装实例时，对所有配置项（如文件位置）使用默认设置。这些配置可以由安装参数（如 DATADIR 和 TARGETDIR）进行控制。有关安装时可以指定的配置参数的更多信息，请参见 SQL Server 2000 联机丛书中的“Customizing Desktop Engine Setup.exe”（定义 Desktop Engine Setup.exe）。可以从该网页找到描述 MSDE 2000 Release A 所包括的 Desktop Engine Setup.exe 的行为的相关主题。有关安装文档的更多信息，请参见 1.1 MSDE 2000 文档。

安装新的 Desktop Engine 实例

1. 打开命令提示符窗口。
2. 在命令提示符下，使用 cd 命令导航至包含 MSDE 2000 Release A 安装实用工具的文件夹：

       cd c:\MSDE2000AFolder\MSDE

   其中，c:\MSDE2000AFolder 是指向存放 MSDE 2000 Release A 解压缩文件的文件夹的路径。

3. 执行下列命令之一：
   - 若要安装被配置为使用 Windows 身份验证模式的默认实例，请执行：

         setup SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是为 sa 登录指定的强密码。

   - 若要安装被配置为使用 Windows 身份验证模式的命名实例，请执行：

         setup INSTANCENAME="InstanceName" SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是为 sa 登录指定的强密码，InstanceName 是为该实例指定的名称。

   - 若要安装被配置为使用混合模式的默认实例，请执行：

         setup SAPWD="AStrongSAPwd" SECURITYMODE=SQL

     其中，AStrongSAPwd 是为 sa 登录指定的强密码。

   - 若要安装被配置为使用混合模式的命名实例，请执行：

         setup INSTANCENAME="InstanceName" SECURITYMODE=SQL SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是为 sa 登录指定的强密码，InstanceName 是为该实例指定的名称。

> 重要 如果安装时使用 .ini 文件，请不要将凭据存储在 .ini 文件中。

> 重要 即使实例被配置为使用 Windows 身份验证模式，也请始终为 sa 登录指定一个强密码。

[返回页首]

# 3.5 重新启动服务

完成安装后，可能会提示您重新启动系统。在系统重新启动（或者完成安装但未请求重新启动）之后，使用“控制面板”中的“服务”应用程序，确保在应用 Service Pack 之前停止的所有服务现在正在运行。包括以下服务：MS DTC、Microsoft 搜索、MSSQLServer、MSSQLServerOLAPService、SQLServerAgent 或者其实例特有的等价服务。

[返回页首]

# 4.0 文档说明

本节主要讲述最新版本的 SQL Server 2000 联机丛书中没有介绍的一些功能。这些功能最初是作为 SQL Server 2000 Service Pack 的一部分、针对 MSDE 2000 组件引进的，目前尚未添加到 SQL Server 2000 联机丛书中。在介绍某些功能时，提到了最初引入这些功能的 Service Pack。

所有未能及时包括在本自述文件中的 MSDE 2000 Release A 信息都将发布在 Microsoft 知识库文章 829925 中。

[返回页首]

# 4.1 Desktop Engine 增强功能

下面的增强功能应用于 MSDE 2000 Release A 中包括的数据库引擎。

# 4.1.1 分布式查询的扩展错误消息

对于分布式查询，除了 MSDE 2000 早期版本返回的服务器错误信息之外，MSDE 2000 Release A 还会返回提供程序错误信息。当相互链接的服务器之间的查询导致错误时，MSDE 2000 将检查该提供程序是否支持 IErrorRecords OLE DB 接口。如果支持此接口，MSDE 2000 将调用 GetErrorInfo 函数，以便从该提供程序中获取附加错误信息，并将此信息作为错误消息的一部分返回给用户。如果不支持 IErrorRecords 接口，则 MSDE 2000 的行为没有什么变化：MSDE 2000 将返回一般性错误。

例如，如果对使用 MSDASQL 的服务器（该服务器不支持 sql_variant）运行下列查询:

    SELECT * FROM remote2k.dqtable.dbo.sqlvariantnotnull
    --Remote2k is a loopback server.

SP3 之前的 MSDE 2000 版本会返回下列错误消息：

    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.

MSDE 2000 SP3 或更高版本（包括 MSDE 2000 Release A）将返回下列错误消息：

    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].

[返回页首]

# 4.1.2 调试功能更改

默认情况下，MSDE 2000 Release A 禁用在 Microsoft Visual Studio® 6.0 及更早版本或 SP3 之前的 SQL Server 查询分析器中调试存储过程的功能，默认情况下还将禁用应用程序调试（在调试客户端应用程序时停止于 SQL Server Transact-SQL 断点处）。要启用调试功能，请运行 sp_sdidebug 并传递参数 legacy_on。要禁用调试功能，请将 legacy_off 传递给此过程。

> 说明 建议不要在生产用服务器上运行 sp_sdidebug 存储过程。

有关更多信息，请参见 Microsoft 知识库文章 328151。

[返回页首]

# 4.2 复制增强功能

本节讨论 MSDE 2000 Release A 中包含的 SQL Server 2000 复制的增强功能。

[返回页首]

# 4.2.1 唯一列上的事务复制 UPDATE 语句

在事务复制中，通常将 UPDATE 语句作为更新进行复制。但是，如果更新改变了唯一索引、聚集索引或用作唯一约束的表达式中的任何列，则在订阅服务器中执行更新时首先执行一个 DELETE 语句，然后执行一个 INSERT 语句。这是因为这种更新可能会影响到多行，而且如果更新是逐行进行的，则可能会出现唯一性冲突。

如果更新操作只影响一行，则不可能出现唯一性冲突。因此，在 SP1 或更高版本中添加了跟踪标志 8207，以允许将对任何唯一列进行的并且只影响一行的更新作为 UPDATE 语句进行复制。这是针对这样一种应用程序特别进行的优化：在订阅服务器上安装用户定义的 UPDATE 触发器，并且要求这些触发器在更新操作仅影响唯一列中的一行时才触发。

要使用跟踪标志 8207，请从命令提示符打开该标志 (`sqlservr.exe -T8207`)，或在运行时，在启动日志读取器代理程序之前使用 DBCC TRACEON (8207, -1) 将其打开。

> 重要 通常，跟踪标志 8207 用于只读事务复制。如果在订阅服务器上可能发生主键 UPDATE，则不要对可更新的订阅使用此跟踪标志。

[返回页首]

# 4.2.2 非唯一聚集索引的限制

在发布某个表以便进行事务复制后，将无法在该表上创建非唯一聚集索引。在创建该索引之前，必须先除去任何包含该表的发布。

[返回页首]

# 4.2.3 附加或还原复制数据库要求的更改

如果处于下列情况，请在附加或还原数据库之前，将已发布数据库的所有者更改为 sa 内置管理员登录：

- 实例正在运行 MDSE 2000 Release A。
- 附加数据库的用户不是 sysadmin 固定服务器角色的成员。
- 尚未启用跨数据库所有权链接。

如果符合上述所有情况，则应在附加或还原的数据库上执行 sp_changedbowner 存储过程。将所有权指定给 sa 登录，以确保复制正常运行。

> 说明 只有 sysadmin 固定服务器角色的成员能够执行 sp_changedbowner。

[返回页首]

# 4.3 SQL Server 代理增强功能

本节讨论 MSDE 2000 Release A 中包含的 SQL Server 代理的增强功能。

# 4.3.1 SQL Server 代理登录帐户信息

SQL Server 代理作业历史记录现在会记录运行每个作业步骤的 Windows 帐户。此信息可以帮助管理员诊断与调度作业（包括为复制和数据转换服务 (DTS) 任务定义的调度作业）有关的安全性问题。

[返回页首]

# 4.3.2 SQL Server 代理权限检查

SQL Server 现在会检查代理作业的所有者是否具有追加或重写每个作业所产生的输出日志文件的权限。存在三种情况：

- 如果作业所有者是 sysadmin 固定服务器角色的成员，则可将作业输出日志文件写入服务器。
- 如果作业所有者是 Windows 用户，则 SQL Server 将测试该用户是否对服务器上所选作业输出日志文件位置具有写权限。
- 如果作业所有者是 SQL Server 用户，则 SQL Server 将测试 SQL Server 代理的代理帐户是否对服务器上所选作业输出日志文件位置具有写权限。如果尚未设置代理帐户，则不会写入日志。

在所有情况下，均使用 SQL Server 代理凭据写入作业，但 SQL Server 现在将进行测试以确保用户对服务器上所选作业输出日志文件位置具有写权限。错误被记录在作业历史记录中，但如果无法写入日志文件，作业步骤也不会失败。

[返回页首]

# 4.3.3 SQL 代理邮件 MAPI 配置文件

在 32 位版本的 SQL Server 2000 中，可以配置 SQL 代理邮件以使用扩展 MAPI 电子邮件配置文件来发送电子邮件警报。可以使用扩展 MAPI 电子邮件应用程序（如 Microsoft Outlook）来创建扩展 MAPI 配置文件。在 64 位版本的 SQL Server 2000 中，SQL 代理邮件只能使用简单 MAPI 配置文件来发送电子邮件警报。不要在 32 位版本的 SQL Server 2000 中使用简单 MAPI 配置文件。

[返回页首]

# 4.4 面向 C 语言的 DB-Library 和嵌入式 SQL

虽然 SQL Server 2000（包括 MSDE 2000 Release A）仍然支持面向 C 语言的 DB-Library 和嵌入式 SQL API，但是以后的 SQL Server 版本将不再包含编写使用这些 API 的应用程序所需的文件。SQL Server 的下一个版本仍然支持来自使用面向 C 语言的 DB-Library 和嵌入式 SQL 编写的现有应用程序的连接，但在此之后的版本中将不再提供这种支持。因此，在编写新的应用程序时应避免使用这些组件。此外，强烈建议您在修改现有的应用程序时消除对这些技术的依赖性。您可以使用 ADO、OLE DB 或 ODBC 访问 SQL Server 中的数据，而不要使用面向 C 语言的 DB-Library 或嵌入式 SQL。有关这些技术的更多信息，请参见 SQL Server 联机丛书。

[返回页首]