安装 SQL Server 2000 概述

Microsoft® SQL Server™ 2000 安装程序创建新的 SQL Server 2000 安装或升级早期版本。在安装或升级到 SQL Server 2000 以前，建议您查阅下列主题。

主题 | 描述
准备安装 SQL Server 2000 | 列出运行 SQL Server 2000 安装程序之前要执行的步骤
SQL Server 2000：版本和组件 | 简要介绍 SQL Server 2000 的各种版本、安装选项和组件
升级现有的 SQL Server 安装 | 概述从 SQL Server 早期版本升级到 SQL Server 2000 的选项

有关更多信息，请参见下表中的相关主题。

若要安装 | 请参见
SQL Server 2000（包括关系数据库引擎的典型安装、客户端工具和客户端连接组件） | 如何安装 SQL Server 2000（安装程序）
仅安装 SQL Server 2000 客户端工具 （包括管理工具和客户端连接组件，不需要服务器） | 如何只安装客户端工具（安装程序）
仅安装 SQL Server 2000 连接 （只安装客户端连接组件，不需要其它选项） | 如何只安装连接（安装程序）
SQL Server 2000 的命名实例或多个实例 | 如何安装 SQL Server 2000 命名实例（安装程序）
用于故障转移群集的 SQL Server 2000 虚拟服务器 | 安装故障转移群集前的准备工作
Analysis Services | 安装 Analysis Services
English Query | 安装 English Query


准备安装 SQL Server 2000

安装 Microsoft® SQL Server™ 2000 之前，请考虑下列事项：

  • 确保计算机满足 Microsoft SQL Server 2000 的系统要求。有关更多信息，请参见 SQL Server 2000 的硬件和软件安装要求。

  • 如果在同一台计算机上安装 SQL Server 2000，则应备份 Microsoft SQL Server 的当前安装。

  • 如果安装故障转移群集，则在运行 SQL Server 安装程序之前禁用所有专用网卡上的 NetBIOS。有关更多信息，请参见安装故障转移群集前的准备工作。

  • 检查所有 SQL Server 安装选项，并准备在运行安装程序时做适当的选择。有关版本和组件的更多信息，请参见 SQL Server 2000：版本和组件。

  • 如果打算将 SQL Server 安装在默认文件位置以外的位置，请参见 SQL Server 2000 的文件路径。

  • 如果使用的操作系统的区域设置不是英语（美国），或者如果自定义字符集或排序次序设置，则查看与排序规则设置有关的主题。有关更多信息，请参见用于国际支持的排序规则选项。
运行 SQL Server 2000 安装程序前的准备工作

运行安装程序之前：

  • 如果要在运行 Microsoft Windows NT® 或 Micorsoft Windows® 2000 的计算机上安装 SQL Server 2000，并且希望 SQL Server 2000 与其它客户端和服务器通讯，则创建一个或多个域用户帐户。有关更多信息，请参见创建安全帐户。

  • 用具有本地管理权限的用户帐户登录到操作系统，或者给域用户帐户指派适当的权限。

  • 关闭所有和 SQL Server 相关的服务。包括所有使用 ODBC 的服务，如 Microsoft Internet Information 服务 (IIS)。

  • 关闭 Microsoft Windows NT 事件查看器和注册表查看器（Regedit.exe 或 Regedt32.exe）。


SQL Server 2000 的硬件和软件安装要求

下表列出了运行 Microsoft® SQL Server™ 2000 的硬件和软件的最低要求。

硬件要求

下表说明安装 Microsoft SQL Server 2000 或 SQL Server 客户端管理工具和库的硬件要求。

硬件 | 最低要求
计算机 | Intel® 或兼容机 Pentium 166 MHz 或更高。
内存 (RAM)1 | 企业版：至少 64 MB，建议 128 MB 或更多 标准版：至少 64 MB 个人版：Windows 2000 上至少 64 MB，其它所有操作系统上至少 32 MB 开发版：至少 64 MB Desktop Engine：Windows 2000 上至少 64 MB，其它所有操作系统上至少 32 MB
硬盘空间2 | SQL Server 数据库组件：95 到 270 MB，一般为 250 MB Analysis Services：至少 50 MB，一般为 130 MB English Query：80 MB 仅 Desktop Engine：44 MB
监视器 | VGA 或更高分辨率 SQL Server 图形工具要求 800x600 或更高分辨率
定位设备 | Microsoft 鼠标或兼容设备
CD-ROM 驱动器 | 需要

1 根据操作系统的要求，可能需要额外的内存。
2 实际的要求因系统配置和选择安装的应用程序和功能的不同而异。

说明 Microsoft SQL Server 2000 没有硬件兼容性列表 (HCL)。如果计算机满足上表所列的最低要求，则对于能够在 Microsoft Windows® 操作系统中使用的硬件，SQL Server 2000 软件即可运行。有关能够在 Windows 操作系统中使用的硬件的更多信息，请参见 Microsoft Windows 硬件兼容列表，该列表位于 Microsoft Web 站点。

操作系统要求

下表说明为使用 Microsoft SQL Server 2000 各种版本或组件而必须安装的操作系统。

SQL Server 版本或组件 | 操作系统要求
企业版 | Microsoft Windows NT Server 4.0、Microsoft Windows NT Server 4.0 企业版、Windows 2000 Server、Windows 2000 Advanced Server 和 Windows 2000 Data Center Server。 注意，SQL Server 2000 的某些功能要求 Microsoft Windows 2000 Server（任何版本）。
标准版 | Microsoft Windows NT Server 4.0、Windows 2000 Server、Microsoft Windows NT Server 企业版、Windows 2000 Advanced Server 和 Windows 2000 Data Center Server。
个人版 | Microsoft Windows Me、Windows 98、Windows NT Workstation 4.0、Windows 2000 Professional、Microsoft Windows NT Server 4.0、Windows 2000 Server 和所有更高级的 Windows 操作系统。
开发版 | Microsoft Windows NT Workstation 4.0、Windows 2000 Professional 和所有其它 Windows NT 和 Windows 2000 操作系统。
仅客户端工具 | Microsoft Windows NT 4.0、Windows 2000（所有版本）、Windows Me 和 Windows 98。
仅连接 | Microsoft Windows NT 4.0、Windows 2000（所有版本）、Windows Me、Windows 98 和 Windows 95。

说明 在 Microsoft Windows NT® Server 4.0 上，必须安装 Service Pack 5 (SP5) 或更高版本，这是 SQL Server 2000 所有版本的最低要求。SQL Server 2000 中文版不支持英文版的 NT 4.0 企业版。

SQL Server 2000 在 Windows NT 4.0 终端服务器上不受支持。

在不带网卡的 Windows 98 计算机上安装 SQL Server 2000 个人版，需要 Windows 98 第二版。

Internet 要求

下表说明与使用 Microsoft SQL Server 2000 相关的 Internet 要求。

组件 | 要求
Internet 软件 | Microsoft SQL Server 2000 所有安装都需要 Microsoft Internet Explorer 5.0。Microsoft 管理控制台 (MMC) 和 HTML 帮助也需要 Microsoft Internet Explorer 5.0。最小安装已足够，而且 Internet Explorer 不必是默认浏览器。 Internet Explorer 5.0 要求的例外情况：如果使用"仅连接"选项而且不连接到要求加密的服务器，则带 Service Pack 2 的 Microsoft Internet Explorer 4.01 就足够了。
Internet Information 服务 | 如果编写 XML 应用程序，请参见用于 SQL Server 的 IIS 虚拟目录管理的系统要求。

网络软件要求

Microsoft Windows NT、Windows 2000、Windows Me、Windows 98 和 Windows 95 都具有内置网络软件。只有在使用 Banyan VINES 或 AppleTalk ADSP 时，才需要其它网络软件。Novel NetWare IPX/SPX 客户端支持由 Windows Networking 的 NWLink 协议提供。

说明 安装 SQL Server 2000 之前，必须在操作系统级启用 TCP/IP。有关更多信息，请参见网络库。

支持的客户端

Microsoft SQL Server 2000 支持以下客户端：Windows NT Workstation、Windows 2000 Professional、Windows 98、Windows 95、Apple Macintosh®、OS/2 和 UNIX。Macintosh、OS/2 和 UNIX 不支持 SQL Server 图形工具，而要求来自第三方供应商的 ODBC 客户端软件。

其它 Microsoft 产品考虑事项

下列 Microsoft 产品要求有 Service Release 或 Service Pack 才能正确操作 SQL Server 2000。

Access 2000

Microsoft Access 2000 要求安装 Microsoft Office 2000 Service Release 1 (SR1) 或 Access 2000 SR1 才能正确操作 SQL Server 2000。如果运行 Access 2000 的早期版本，则无法在 SQL Server 2000 上测试自动数据处理 (ADP) 应用程序。无法访问数据库关系图、存储过程、表设计或视图设计。

将来的 Access Service Release 中还要解决下面一些问题：

  • 当在 SR1 中运行 Access 2000 时，可以测试 ADP 应用程序。还可以更改数据库关系图、存储过程、表设计或视图设计，但是无法保存任何更改。将来的 Access Service Release 允许有限的保存更改能力。

  • Access 2000 创建数据库向导无法成功创建 SQL Server 2000 数据库。若要解决此问题，可以先使用 SQL Server 企业管理器创建数据库，然后在 Access 2000 中使用"新建"对话框上的"项目（现有数据库）"选项创建数据库的 ADP。

  • Access 2000 升迁向导不支持升迁到 SQL Server 2000。若要解决此问题，可使用企业管理器中的数据转换服务将 MDB 数据库文件导入 SQL Server。然后可以重命名 MDB 表，并创建所得到的 SQL Server 数据库的链接表，其名称与原始的 MDB 表名相同。
Visual Studio 6.0

在运行 Microsoft Visual Studio® 6.0 时，无法访问 SQL Server 2000 中的数据库关系图、存储过程、表设计或视图设计。Visual Studio 6.0 Service Pack 4 使您得以更改数据库关系图、存储过程、表设计或视图设计，但是无法保存它们。将来的 Visual Studio Service Pack 允许有限的保存更改能力。

SQL Server 2000 工具无法访问使用 Visual Studio 6.0 中的设计工具保存的数据库关系图，直到修改了数据库中的 dtproperties 表为止。有关更多信息，请参见向后兼容性。

请参见

SQL Server 2000 的各种版本

SQL Server 2000：版本和组件

SQL Server 2000 的各种版本所支持的操作系统


SQL Server 2000：版本和组件

SQL Server 2000 的版本包括企业版、标准版、个人版、开发版和评估版。

说明 Microsoft SQL Server 2000 个人版替代 Microsoft SQL Server 7.0 桌面版。若要只安装客户端工具，可以使用个人版，购买 SQL Server 2000 标准版和企业版时也可以得到个人版。

在打开的屏幕上选择"SQL Server 2000 组件"时，"安装组件"屏幕上将出现下面三个选项：

安装数据库服务器

启动 SQL Server 安装程序，其中包含选择安装选项的屏幕。

安装 Analysis Services

在处理 OLAP 多维数据集的计算机上安装 Analysis Services。有关更多信息，请参见安装 Analysis Services。

安装 English Query

在运行 English Query 应用程序的计算机上安装 English Query。有关更多信息，请参见安装 English Query。

选择要安装的组件和选项

您可能有数据库服务器、Internet 服务器，或者需要在客户端计算机上有数据库。如果运行数据库客户端/服务器应用程序，则可能需要也可能不需要在计算机上有数据库。可能需要管理数据库服务器的工具，也可能希望运行访问 SQL Server 实例的应用程序。以下各段描述上述 SQL Server 配置及其它配置的安装选项。

在数据库服务器上安装 SQL Server

安装数据库服务器时，安装 SQL Server 2000 企业版或 SQL Server 2000 标准版。在工作站上安装个人数据库时，安装 SQL Server 2000 个人版。这些安装一般包括数据库引擎、客户端数据库管理工具和客户端连接组件。

在数据库服务器上，可以安装 SQL Server 2000 关系数据库引擎的默认实例。还可以安装 SQL Server 2000 数据库引擎的一个或多个命名实例。除了要指定实例名称外，安装选项与安装默认实例相似。

安装 SQL Server 2000 的实例时，必须指定是否让实例使用故障转移群集。有关更多信息，请参见安装故障转移群集前的准备工作。

在客户端/服务器应用程序中使用 SQL Server

对于运行数据库客户端/服务器应用程序（如与 SQL Server 实例直接相连的 Microsoft Visual Basic® 应用程序）的计算机，可以选择下列选项：

  • 如果需要在客户端计算机上安装个人数据库，则安装 SQL Server 的个人版。一般情况下，该安装程序安装客户端工具、客户端连接组件和数据库引擎。

  • 如果在计算机上不需要数据库，但是需要管理数据库服务器上的 SQL Server 实例，或者打算开发 SQL Server 应用程序，则安装"仅客户端工具"选项。此选项包括客户端连接组件。有关更多信息，请参见如何仅安装客户端工具（安装程序）。

  • 如果只想运行访问数据库服务器上的 SQL Server 实例的应用程序，则仅安装连接组件。有关更多信息，请参见如何只安装连接（安装程序）。
在 Internet 服务器上使用 SQL Server

在 Internet 服务器（如运行 Microsoft Internet Information 服务 (IIS) 的服务器）上，一般安装 SQL Server 2000 客户端工具。客户端工具包括由连接 SQL Server 实例的应用程序使用的客户端连接组件。另外，客户端工具还包括配置虚拟根的实用工具。应用程序通过 URL 访问 SQL Server 时需要虚拟根。

安装 SQL Server 客户端工具之后，配置支持通过 URL 访问 SQL Server 实例的虚拟根。有关配置虚拟根的更多信息，请参见使用用于 SQL Server 的 IIS 虚拟目录管理实用工具。

说明 尽管可以在运行 IIS 的计算机上安装 SQL Server 实例，但这通常只是只有单个服务器计算机的小型 Web 站点的做法。大多数 Web 站点都将中层 IIS 系统安装在一个服务器上或服务器群集上，将数据库安装在一个单独的服务器或服务器联合体上。有关联合体的更多信息，请参见联合 SQL Server 2000 服务器。

如果 Internet 服务器上的某些 Web 页使用 English Query，则也应安装该组件。

其它 SQL Server 组件
  • 若要与应用程序一起分发 SQL Server 2000，请使用 SQL Server 2000 Desktop Engine，该引擎是独立的数据库引擎，独立的软件供应商可将其与应用程序打在一个包内。有关更多信息，请参见与应用程序一起分发 SQL Server。

说明 Desktop Engine 没有图形用户界面，且与 SQL Server 7.0 桌面版无关。

除了"安装 SQL Server 2000 组件"屏幕上显示的主要组件和版本外，SQL Server 2000 还包括其它版本：SQL Server 2000 开发版、SQL Server 2000 Windows CE 版和 SQL Server 2000 企业评估版。有关更多信息，请参见 SQL Server 2000 的各种版本所支持的功能。

请参见

SQL Server 2000 的各种版本

SQL Server 2000 的各种版本所支持的操作系统


安装 English Query

English Query 是在 Microsoft® SQL Server™ 2000 上使用的开发工具。使用 English Query 可创建应用程序，使用户得以用英语查询 SQL Server 数据库或 Analysis Services 数据库。例如，用户可以询问："How many widgets were sold in Washington last year?"，从而代替 SQL 语句：

SELECT sum(Orders.Quantity) FROM Orders, Parts
WHERE Orders.State='WA'
   AND Datepart(Orders.Purchase_Date,'Year')='1999'
   AND Parts.PartName='widget'
   AND Orders.Part_ID=Parts.Part_ID

安装 English Query 时，"English Query"将添加到"开始"菜单上的 Microsoft SQL Server 程序组中。English Query 包含下列快捷方式：

  • English Query 联机丛书

  • English Query 教程

  • Microsoft English Query

如果 English Query 未与 Microsoft SQL Server 2000 一起安装，则帮助系统将访问 English Query 联机丛书 Eqdoc.chm，而不是 SQL Server 联机丛书 SQL80.col。但是，两个文档文件所包含的有关 English Query 的材料基本相同，并且都提供 English Query 的上下文相关的 (F1) 帮助。不管采用怎样的安装方案，English Query 联机丛书都可以从 English Query 程序组中使用。

English Query 的安装要求如下：

  • Microsoft Windows® 95、Microsoft Windows 98 或 Microsoft Windows NT® 4.0 或更高版本

  • 40 MB 可用磁盘空间

  • Microsoft Internet Explorer 5.0 或更高版本

安装 English Query

SQL 安装程序

SQL 安装程序

请参见

English Query 概述


安装 Analysis Services

Microsoft® SQL Server™ 2000 Analysis Services 包括一个用于构造和分析多维数据的功能强大的服务器。

安装 Analysis Services

SQL 安装程序

SQL 安装程序

请参见

Analysis Services 概述


设置 Windows 服务帐户

在 Microsoft® Windows NT® 和 Microsoft Windows® 2000 操作系统上，Microsoft SQL Server™ 和 SQL Server 代理程序都作为 Windows 服务启动和运行。这些服务出现在"服务"对话框中的已安装服务列表中，使用 Windows 控制面板可访问这些服务。下表显示用于引用 SQL Server 默认实例和命名实例的每个服务名称和术语，与"服务"对话框中显示的相同。

服务 | 名称 | 默认实例术语 | 命名实例术语
Microsoft SQL Server | SQL Server | MSSQLSERVER | MSSQ$InstanceName
Microsoft SQL Server 代理程序 | SQL Server 代理 | SQLSERVERAGENT | SQLAgent$InstanceName

若要使 Microsoft SQL Server™ 和 SQL Server 代理程序在 Windows 中作为服务运行，必须给它们指派 Windows 用户帐户。通常给 SQL Server 和 SQL Server 代理程序指派相同的用户帐户，要么是本地系统用户帐户要么是域用户帐户。但是，也可以在安装过程中为每个服务自定义设置。有关如何自定义每个服务的帐户信息的更多信息，请参见服务帐户。

说明 Microsoft Windows 98 不支持 Windows 服务；相反，SQL Server 模拟 SQL Server 和 SQL Server 代理服务。不要求为这些模拟服务创建用户帐户。

使用本地系统帐户

本地系统帐户不要求密码，没有 Windows NT 4.0 和 Windows 2000 的网络访问权限，同时限制 SQL Server 安装与其它服务器交互。

使用域用户帐户

域用户帐户使用 Windows 身份验证，即用于连接到操作系统的用户名和密码也用于连接到 SQL Server。一般情况下都使用域用户帐户，因为许多服务器之间的活动只能使用域用户帐户才能执行，例如：

  • 远程过程调用。

  • 复制。

  • 备份到网络驱动器。

  • 涉及远程数据源的异类联接。

  • SQL Server 代理邮件功能和 SQL 邮件。如果使用 Microsoft Exchange 则受此限制。大多数其它邮件系统同样要求客户端（SQL Server 和 SQL Server 代理服务）运行于具有网络访问权限的帐户。

说明 多台运行 SQL Server 的服务器可以共享同一用户帐户。设置复制时，建议发布服务器及其所有订阅服务器共享 SQL Server 服务的同一服务帐户。

域用户帐户要求

所有域用户帐户必须具有以下权限：

  • 访问和更改 SQL Server 目录 (\Program Files\Microsoft SQL Server\Mssql)。

  • 访问和更改 .mdf、.ndf 和 .ldf 数据库文件。

  • 作为服务登录。

  • 读写在下述位置的注册表键值：
    • HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer。
      或者，对于任何命名实例为：HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server。

    • HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\MSSQLServer。
      或者，对于任何命名实例为：HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\MSSQL$Instancename。

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib。

另外，域用户帐户必须能读写下面这些服务的相应注册表键值：SQLAgent$InstanceName、MSSearch 和 MSDTC。

下表显示某些功能要求的额外权限。

服务 | 权限 | 功能
SQL Server | 网络写特权 | 使用 xp_sendmail 写入邮件槽。
SQL Server | 作为操作系统的一部分执行，并替换进程等级令牌 | 对非 SQL Server 管理员的用户运行 xp_cmdshell。
SQL Server 代理 | 管理员本地组的成员 | 创建属于非 SQL Server 管理员的其他人的 CmdExec 和 ActiveScript 作业。 使用自动重新启动功能。 使用"空闲时运行"作业。
SQL Server | 本地权限高的用户或本地管理员组的成员 | 在 Windows 2000 Active Directory 中添加或删除 SQL Server 对象。

更改用户帐户

若要在安装 SQL Server 之后更改任何 SQL Server– 相关服务的密码或其它属性，请使用 SQL Server 企业管理器。如果 Windows 密码已过期而需要更改，则还必须修改 Windows 中的 SQL Server 服务设置。有关更多信息，请参见更改密码和用户帐户。

请参见

创建安全帐户

计划安全性

服务帐户


SQL Server 2000 的文件路径

在 Microsoft® SQL Server™ 2000 中，安装的 SQL Server 文件的默认位置已更改。对于 SQL Server 的默认实例，程序和数据文件的默认目录是 \Program Files\Microsoft SQL Server\Mssql。可以为程序和数据文件指定默认路径以外的文件路径。

默认情况下，共享工具安装在 \Program Files\Microsoft SQL Server\80\Tools。此文件夹包含由所有 SQL Server 2000 实例（默认实例和命名实例）共享的文件。这些工具包含 SQL Server 联机丛书、开发工具和其它组件。

安装程序还在 Microsoft Windows® 系统目录中安装文件。系统文件位置无法更改。

SQL Server 程序文件的位置

SQL Server 程序文件位于 \Program Files\Microsoft SQL Server\Mssql\Binn 目录中。

程序文件的位置是安装程序创建文件夹所在的根目录，而这些文件夹包含程序文件以及通常在使用 SQL Server 时不会更改的文件。尽管这些文件不是只读文件，但是文件夹不包含数据、日志、备份文件或复制数据，因此，当使用 SQL Server 时这些文件的空间需求不会增加。

说明 程序文件不能安装在可移动磁盘驱动器上。

SQL Server 数据文件的位置

SQL Server 数据文件位于 \Program Files\Microsoft SQL Server\Mssql\Data。

数据文件的位置是安装程序创建文件夹（其中包含数据库和日志文件）所在的根目录，以及系统日志、备份和复制数据所在的目录。安装程序为 master、model、tempdb、msdb、pubs 和 Northwind 数据库创建数据库和日志文件。SQL Server 数据文件路径应该位于有足够空间供这些文件增大的驱动器上。

说明 不能将数据文件安装在使用压缩功能的文件系统上。

指定文件路径

在 SQL Server 2000 中，由于有多个实例的选项，所以文件路径除用户为程序和数据文件指定的位置以外，还使用实例的名称。但是，工具和其它共享文件不需要实例的名称。

程序和数据文件的默认实例文件路径

对于 SQL Server 默认实例，默认 SQL Server 目录名称 (Mssql) 与指定的目录一起用作默认实例名称。

例如，如果指定将 SQL Server 默认实例安装在 D:\MySqlDir，则文件路径为：

  • D:\MySqlDir\Mssql\Binn（程序文件）

  • D:\MySqlDir\Mssql\Data（数据文件）
程序和数据文件的命名实例文件路径

对于任何命名实例，实例的给定名称与指定的目录一起使用。

例如，如果指定名为 MyInstanceA 的实例安装在 D:\MySqlDir 中，则路径为：

  • D:\MySqlDir\MSSQL$MyInstanceA\Binn（对于程序文件）

  • D:\MySqlDir\MSSQL$MyInstanceA\Data（对于数据文件）

请参见

多个 SQL Server 实例的文件位置

定位目录和文件


升级现有的 SQL Server 安装

可以从早期版本升级到 Microsoft® SQL Server™ 2000，也可以在安装 SQL Server 2000 后立即执行升级操作。从 SQL Server 6.5 版升级到 SQL Server 2000 和从 SQL Server 7.0 版升级到 SQL Server 2000 的操作不同。SQL Server 6.5 数据库（及相关信息）转换成 SQL Server 2000 格式。SQL Server 7.0 的安装则被 SQL Server 2000 重写，除非安装命名实例配置，这种情况下 SQL Server 7.0 可以保持原样。

初始安装 SQL Server 2000 之后，便有其它可用的升级选项。如果使用多个 SQL Server 2000 实例，则可以通过添加组件升级某个实例，并且多个实例的组件集各不相同。

从 SQL Server 7.0 升级到 SQL Server 2000

可以通过安装 SQL Server 2000 的默认实例重写现有的 SQL Server 7.0 安装。也可以通过安装 SQL Server 2000 的命名实例使 SQL Server 7.0 安装保持原样。这两种操作都通过下列步骤执行。

从 SQL Server 7.0 升级到 SQL Server 2000

SQL 安装程序

SQL 安装程序

升级 SQL Server 7.0 数据库

不用从 SQL Server 7.0 完整升级到 SQL Server 2000（这将覆盖 SQL Server 7.0），而是可以升级 SQL Server 7.0 数据库和相关的元数据。有关更多信息，请参见升级 SQL Server 7.0 数据库（复制数据库向导）。

从 SQL Server 6,5 升级到 SQL Server 2000

安装 Microsoft® SQL Server™ 2000 之后，可以使用 SQL Server 升级向导升级 SQL Server 6.5 版的服务器配置和数据库。在此过程中，SQL Server 6.5 的信息和数据都传输到 SQL Server 2000 安装。SQL Server 6.5 安装在计算机上保持原样。可以删除它，也可以将它保留在计算机中并用于 SQL Server 2000 的版本切换配置。

说明 如果打算将 SQL Server 6.5 与 SQL Server 2000 实例安装保留在一起（出于版本切换的目的），那么，在安装 SQL Server 2000 之前必须将 SQL Server Service Pack (SP5) 应用于 SQL Server 6.5。

从 SQL Server 6.0 升级到 SQL Server 2000（不直接升级）

若要从 SQL Server 6.0 升级到 SQL Server 2000，有下面两种方法：

  • 使用 SQL Server 7.0 版提供的 SQL Server 升级向导从 SQL Server 6.0 升级到 SQL Server 7.0，然后使用安装程序从 SQL Server 7.0 升级到 SQL Server 2000。

  • 将 SQL Server 6.0 数据转换成 SQL Server 6.5，然后将 SQL Server 6.5 数据转换成 SQL Server 2000。

说明 这两种数据转换都通过 SQL Server 升级向导进行，但使用的升级向导版本不同。SQL Server 7.0 升级向导可以将 SQL Server 6.0 数据库或 SQL Server 6.5 数据库升级到 SQL Server 7.0 数据库。在 SQL Server 2000 中，升级向导仅用于从 SQL Server 6.5 升级到 SQL Server 2000。

版本升级

Microsoft® SQL Server™ 2000 的各种版本（SQL Server 2000 企业版、SQL Server 2000 标准版、SQL Server 2000 个人版和 SQL Server 2000 开发版）都有各自的光盘并且单独安装。

可以通过执行版本升级，添加 Microsoft SQL Server 安装的功能集。例如，如果购买了 Microsoft SQL Server 2000 标准版，则可以从 SQL Server 7.0 桌面版升级到 SQL Server 2000 标准版。

下表显示 SQL Server 各种版本之间的升级选项。

已安装的版本 | 可升级到
SQL Server 7.0 桌面版 | SQL Server 2000 个人版 SQL Server 2000 标准版
SQL Server 7.0 标准版 | SQL Server 2000 标准版 SQL Server 2000 企业版
SQL Server 7.0 企业版 | SQL Server 2000 企业版
SQL Server 2000 开发版 | SQL Server 2000 企业版
SQL Server 2000 标准版 | SQL Server 2000 企业版
SQL Server 2000 个人版 | SQL Server 2000 标准版

说明 SQL Server 7.0 桌面版已由 SQL Server 2000 个人版取代；不过，仍然可以执行这种类型的版本升级。

升级选项还取决于所使用的操作系统。有关更多信息，请参见 SQL Server 2000 的各种版本所支持的操作系统。

在 SQL Server 2000 内部升级版本和组件

在从 SQL Server 2000 的一个版本升级到另一个版本时可以添加功能，并且有在此升级过程中添加组件的选项。例如，如果从 SQL Server 2000 个人版升级到 SQL Server 2000 标准版，则可以在升级过程中安装其它组件。

执行 SQL Server 2000 内部版本升级

SQL 安装程序

SQL 安装程序

将组件添加到 SQL Server 2000 实例

通过选择要添加功能的 SQL Server 实例，可将组件添加到现有的 SQL Server 2000 安装。此方法使您得以对默认实例和任何命名实例有不同的组件集。

将组件添加到 SQL Server 2000 实例

SQL 安装程序

SQL 安装程序

请参见

升级到 SQL Server 2000：概述

现有安装选项

选择组件

升级到 SQL Server 2000 故障转移群集

升级 SQL Server 6.5 数据库（升级向导）


基本安装选项

本节描述 SQL Server 2000 的基本安装选项。在本地或远程计算机上升级现有安装或创建新的安装都被视为基本安装选项。

有关群集维护、执行无值守安装或重建注册表的更多信息，请参见高级安装选项。


在基本安装屏幕上输入信息

Microsoft® SQL Server™ 2000 安装程序提供基本选项和高级选项。以下两个选项可用于本地安装：

  1. 创建新安装或其它安装

  2. 对现有安装进行升级、删除或添加组件

如果选择升级选项，则还有许多其它选择。有关更多信息，请参见现有安装选项。另外，可以选择高级选项。有关初始安装选择的更多信息，请参见安装选择。

对于基本的本地安装，选择创建新的或其它安装选项。在随后出现的屏幕中输入用户和产品标识 (ID) 信息后，选择要包含在此 SQL Server 2000 安装中的组件。可选择仅安装连接组件或客户端工具组件（包含连接组件），也可选择安装全部服务器和客户端工具组件。有关更多信息，请参见安装定义。

如果选择安装同时带有服务器和客户端工具的 SQL Server 关系数据库，则选择 SQL Server 2000 命名实例或默认实例。有关更多信息，请参见实例名称。

选择默认实例或选择创建命名实例后，出现"标准安装类型选择"屏幕。有关更多信息，请参见安装类型：典型、最小或自定义。

安装程序运行时可能出现其它选项，这取决于系统和安装的具体情况。

请参见

升级现有的 SQL Server 安装

多个 SQL Server 实例


计算机名称

通过安装程序中的"计算机名称"对话框可在本地计算机、远程计算机或虚拟服务器上安装 Microsoft SQL Server 2000。

在本地计算机上可以使用所有安装和升级选项。高级选项（包括注册表重建、无值守安装和升级到群集）在远程安装中都不可用。如果正在群集计算机上运行安装程序，则可使用"虚拟服务器"选项。

选项

本地计算机

默认情况下，编辑框中的名称为本地计算机（即正在运行安装程序的计算机）名称。对于本地安装，接受默认值并单击"下一步"按钮。

说明 如果仅安装工具，则"本地计算机"将是该对话框中唯一的可用选项。

远程计算机

输入计算机名称以进行远程安装，或单击"浏览"按钮以定位远程计算机。

虚拟服务器

输入要管理的新的或现有的虚拟 SQL Server 名称。

该选项仅当从 Windows NT 或 Windows 2000 企业操作系统上检测到 Microsoft 群集服务 (MSCS) 时才可用。

浏览

单击"浏览"按钮以定位远程计算机。

仅当选定"远程计算机"选项时该按钮才可用。

请参见

安装远程配置

安装虚拟服务器配置

安装故障转移群集前的准备工作

创建故障转移群集


安装选择

"安装选择"屏幕是 Microsoft® SQL Server™ 安装程序的初始屏幕，可以从屏幕上的三个选项中选择一个运行安装程序。

选项

创建新的 SQL Server 实例或安装客户端工具

创建新的 SQL Server 2000 实例，该实例是默认实例或命名实例。另外，该选项使您得以在除 Microsoft Windows® 95 之外的任何操作系统上使用 SQL Server 2000 任何版本的光盘来仅安装客户端工具。

对现有的 SQL Server 实例进行升级、删除或添加组件

该选项使您得以对现有的 SQL Server 实例进行升级、删除或添加组件。现有实例包括早期版本（SQL Server 6.5 版和 SQL Server 7.0 版）以及 SQL Server 2000 实例的安装。有关更多信息，请参见现有安装选项。

高级选项

选择用于群集维护、无值守安装和注册表重建的高级选项。

请参见

多个 SQL Server 实例

升级现有的 SQL Server 安装

高级安装选项


现有安装选项

"现有安装选项"安装屏幕包括几种可供选择的升级 Microsoft® SQL Server™ 早期版本和升级到 SQL Server 2000 组件的方法。只有特定安装所应用选项才出现在屏幕上。

选项

向现有安装中添加组件

该选项使您得以向现有 SQL Server 2000 安装中添加组件。

卸载现有安装

从计算机中删除 SQL Server 2000 安装（默认实例或命名实例）。要删除的实例已在"实例名称"屏幕中指定。

升级现有安装

该选项用于现有的 SQL Server 7.0 和 SQL Server 2000 安装。由于构成现有安装的版本及组件，选择该选项将启动以下升级进程之一：

  • 从 SQL Server 7.0 升级到 SQL Server 2000（如果无法升级客户端工具，请参见下面的"升级问题"）。

  • 向现有的 SQL Server 2000 安装添加组件。例如，您可能购买了具有更多功能的 SQL Server 版本，或者需要安装某些组件。

说明 通过使用 SQL Server"开始"菜单中的 SQL Server 升级向导可从 SQL Server 6.5 升级到 SQL Server 2000。

将现有安装升级到群集安装

该选项是从 SQL Server 6.5 或 SQL Server 7.0 群集安装升级到 SQL Server 2000 群集安装的进程中的一个步骤。首先，将 SQL Server 早期版本升级到 SQL Server 2000。然后，将现有 SQL Server 2000 安装升级到群集安装。有关更多信息，请参见升级到 SQL Server 2000 故障转移群集。

升级问题
  • 在仅运行 SQL Server 7.0 客户端工具的计算机上，当选择升级现有安装时可能遇到以下消息："无法升级检测到的默认实例。请选择'新安装'以升级您的工具。"如果是通过选择"安装类型"对话框中的"自定义"选项、然后在组件对话框中选择工具来安装 SQL Server 7.0 客户端工具的，便会发生该问题。在这种情况下，由于注册表问题而无法升级 SQL Server 7.0 的现有客户端工具安装。而必须通过选择"创建 SQL Server 的新实例，或安装客户端工具"选项来重新安装 SQL Server。

  • 通过使用该选项来升级现有安装，可以将 SQL Server 2000 的 Beta 版升级到产品的最终版。如果您打算在包含多个实例的群集或计算机上执行这样的升级，升级前必须先关闭 SQL Server 的所有实例。

请参见

从 SQL Server 7.0 升级到 SQL Server 2000

升级现有的 SQL Server 安装

选择组件


安装定义

使用"安装定义"屏幕选择要包含在 SQL Server 2000 安装中的组件。如果选择"仅客户端工具"或"仅连接"选项，除非安装客户端工具时选择组件，否则安装程序将继续进行而不作更多的选择。如果选择安装"服务器和客户端工具"，则出现另外的安装屏幕。

选项

仅客户端工具

仅安装客户端关系数据库管理工具。此选项包含管理 SQL Server 的客户端工具和客户端连接组件。此外，该选项使您得以选择其它要安装的组件。有关更多信息，请参见如何只安装客户端工具（安装程序）。

服务器和客户端工具

该选项执行安装服务器和客户端工具以创建具有管理能力的关系数据库服务器。选择"服务器和客户端工具"选项将显示所有附加的安装选项。

有关执行数据库引擎默认实例的典型安装（包括安装所有客户端和连接）的更多信息，请参见如何安装 SQL Server 2000（安装程序）。

说明 如果您正在使用计算机操作系统不支持的 SQL Server 版本的光盘安装客户端工具，则该选项不可用。

仅连接

仅安装关系数据库客户端连接组件，包括连接 SQL Server 2000 命名实例所需的 MDAC 2.6（Microsoft 数据访问组件）。该选项只提供连接工具，不提供客户端工具或其它组件。有关更多信息，请参见如何只安装连接（安装程序）。

请参见

管理工具

服务器组件

客户端连接


用户信息

"用户信息"安装屏幕提示您输入您的姓名和公司名称。这些字段是必须输入的。

在网络上进行安装时，应确保提供的是负责使用或管理该服务器的用户的姓名。

请参见

设置 Windows 服务帐户


实例名称

使用此屏幕添加和维护 Microsoft® SQL Server™ 2000 实例。

选项

默认值

  • 选定该选项时，将安装 SQL Server 2000 的默认实例。单击"下一步"继续安装进程。

  • 清除此框时，可安装或维护 SQL Server 2000 的命名实例。

说明 如果未启用该复选框，则安装程序已在该计算机上检测到 SQL Server 的默认实例。默认实例可能是 SQL Server 6.5 或 SQL Server 7.0 版的安装，或者是已安装的 SQL Server 2000 的默认实例。同一时刻只能有一个 SQL Server 安装（任何版本）为默认实例。有关更多信息，请参见 多个 SQL Server 实例。

实例名称

输入新的实例名或要维护的实例的名称。查阅并遵循实例名称的规则。

重要 建议将实例名限制在 10 个字符之内。实例名会出现在各种 SQL Server 和系统工具的用户界面中，因此，名称越短越容易读取。

实例命名规则

  • 实例名称不区分大小写。

  • 实例名称不能是 Default 或 MSSQLServer。

  • 实例名必须遵从 SQL Server 标识符规则且不能为保留关键字。

  • 必须将实例名限制为 16 个字符。

  • 实例名中的首字符必须为字母、"和"符号 (&)、下划线 (_) 或数字符号 (#)。可用的定母为 Unicode 标准 2.0 中定义的字符（其中包括拉丁字符 a-z 和 A-Z）和其它语言中的字母字符。

  • 后续字符可以是：
    • Unicode 标准 2.0 所定义的字母。

    • 来自基本拉丁字母或其它国家脚本的十进制数字。

    • 美元符 ($)、数字符号 (#) 或下划线 (_)。
  • 实例名称中不允许嵌入空格或特殊字符。不能使用反斜线 (\)、逗号 (,)、冒号 (:) 或 @ 符号。

警告 只有在当前 Microsoft Windows® 代码页中有效的字符，才可以用于 SQL Server 2000 的实例名称中。如果使用当前代码页不支持的 Unicode 字符，则将出现错误。

请参见

处理 SQL Server 的实例和版本

处理 SQL Server 2000 的命名实例和多实例

SQL Server 2000 实例的命名规则

保留关键字


安装类型：典型、最小或自定义

当安装 Microsoft® SQL Server™ 2000 企业版、SQL Server 2000 标准版或 SQL Server 2000 个人版时，SQL Server 安装程序在"安装类型"对话框中提供三种安装类型。另外，可修改该对话框中的程序和数据文件的安装位置。

选项

典型

使用默认安装选项安装整个 SQL Server。建议多数用户采用此安装。

最小

安装运行 SQL Server 所需的最小配置。建议使用最小可用磁盘空间的计算机的用户采用此安装。

自定义

安装 SQL Server 且可更改任意或所有默认选项。使用自定义安装选择组件和子组件，或者更改排序规则、服务帐户、身份验证或网络库的设置。

目的文件夹

程序和数据文件的默认安装位置都是 C:\Program Files\Microsoft SQL Server\。

程序文件

单击"浏览"按钮另选安装 SQL Server 程序文件的位置。

数据文件

单击"浏览"按钮另选安装 SQL Server 数据文件的位置。

注意 建议不要将程序文件安装在群集磁盘上，以便将来升级到群集。如果选择群集磁盘上的某个文件夹作为 SQL Server 程序文件的目的文件夹，则会出现一条信息，请求另一条安装程序文件的路径。

升级程序文件已安装在群集磁盘上的 SQL Server 7.0 安装时，也将出现类似信息："安装程序将从群集磁盘上移去程序文件。请提供程序文件的新位置。您选择的驱动器号必须作为本地驱动器存在于群集的所有节点上，以便今后升级到群集安装。"

有关更多信息，请参见升级到 SQL Server 2000 故障转移群集。

每种安装类型的组件

在 Windows NT® 或 Windows 2000 上安装 SQL Server 时，所有安装类型都提供以下选项：

  1. SQL Server 和 SQL Server 代理程序的 Windows 服务帐户（登录帐户）。

  2. 每次重新启动计算机时，是否自动启动 SQL Server 和 SQL Server 代理。

  3. 各种网络库或协议的使用，包括 TCP/IP 套接字、命名管道和多协议。

下表列出各种安装类型以及每种安装类型提供的组件。

组件 | 典型 | 最小 | 自定义
数据库服务器 | 是 | 是 | 可选
升级工具1 | 是 | 否 | 可选
复制支持 | 是 | 是 | 可选
全文检索 | 是 | 是 | 可选
客户端管理工具 | 全部 | 无 | 可选
客户端连接 | 是 | 是 | 非选项
联机丛书 | 是 | 否 | 可选
开发工具 | 仅调试程序 | 无 | 工具的选择
代码示例 | 无 | 无 | 示例的选择
排序规则设置 | 是 | 是 | 设置的选择

1 默认情况下，只为 SQL Server 2000 的默认实例而不为任何命名实例安装升级工具。

请参见

Net-Library 和网络协议


选择组件

在"选择组件"屏幕上，选择要安装的或者重新安装（如果没有进行初始安装）的组件和子组件。默认情况下，选定典型安装选项。选择要安装或重新安装的组件，然后清除所有其它组件。

说明 不能通过清除该屏幕上的复选框将组件删除。删除已安装的组件的唯一方法是将 SQL Server 整个删除。

选项

组件

列出 SQL Server 的主要组件

子组件

列出选定组件的可用子组件

SQL Server 组件及各自的子组件包括：

  • 服务器组件
    • SQL Server

    • 升级工具

    • 复制支持

    • 全文检索

    • 调试符号

    • 性能计数器
  • 管理工具
    • 企业管理器

    • 事件探查器

    • 查询分析器

    • DTC 客户端支持

    • 冲突查看器
  • 客户端连接

  • 联机丛书
    • 磁盘上的联机丛书
  • 开发工具
    • 头和库

    • MDAC SDK

    • 备份/还原 API

    • 调试程序界面
  • 代码示例
    • 代码示例选择

请参见

如何向 SQL Server 2000 实例中添加组件（安装程序）


服务器组件

这些组件可在运行安装程序时，从"选择组件"对话框中的"服务器组件"分类中安装。当选定"服务器和客户端工具"作为初始安装选项时，将包含服务器组件。

SQL Server

安装 SQL Server 关系数据库引擎和其它核心工具。如果安装了 SQL Server 程序文件，就必须安装该 SQL Server 组件。

说明 安装 SQL Server 组件时，安装程序还安装 bcp、isql 和 osql 实用工具、ODBC、OLE DB 和 DB-Library。

升级工具

安装用于将 SQL Server 6.5 数据库升级到当前版本数据库的 SQL Server 升级向导。

复制支持

安装复制所使用的脚本和二进制文件。

全文检索

安装 Microsoft 全文检索引擎（Microsoft 搜索服务），它可以超越基本等式和 LIKE 运算符而扩展搜索字符列的能力。

调试符号

安装用于安装的调试符号。

性能计数器

安装用于安装的性能计数器。

请参见

安装定义


管理工具

这些组件可在运行安装程序时，从"选择组件"对话框中的"管理工具"分类上安装。当选定"仅客户端工具"选项作为初始安装选项时，将包含管理工具。

企业管理器

用于执行服务器和企业管理任务。

事件探查器

用于监视、记录和支持 Microsoft SQL Server 数据库活动审核。

查询分析器

用于交互输入 Transact-SQL 语句和过程。还以图形显示计划的形式提供图形查询分析功能。

DTC 客户端支持

用于将数据库事务扩展到多个服务器。

Microsoft 分布式事务处理协调器 (MS DTC) 用于协调由运行 Microsoft Windows NT®、Microsoft Windows® 98 和 Microsoft Windows 95 系统组成的网络中的事务。

冲突查看器

用于查看和更改（如有必要）同步冲突的解决方式。

请参见

安装定义

如何只安装客户端工具（安装程序）


客户端连接

客户端连接组件是安装程序的"选择组件"对话框中的选项。客户端连接组件用于客户端和服务器之间的通讯，包括 Microsoft 数据访问组件 (MDAC) 和 DB-Library、ODBC 以及 OLE DB 的网络库。

此组件没有子组件。当选定"仅连接"作为初始安装选项时，只安装客户端连接组件。

说明 若要连接 SQL Server 2000 的命名实例，必须在客户端计算机上安装 MDAC 2.6。

请参见

安装定义

使用应用程序分发 SQL Server


联机丛书

该组件可以从安装程序的"选择组件"对话框中的"联机丛书"分类上安装。联机丛书组件既包括整套的 SQL Server 2000 的 SQL Server 联机丛书，也包括可通过单击"帮助"按钮或在对话框中及界面元素上按 F1 键后打开的联机帮助。

磁盘上的联机丛书

在本地驱动器的默认共享工具位置安装整套文档集：\Program Files\Microsoft SQL Server\80\Tools\Books。

说明 您可能想查看 Microsoft® SQL Server™ 7.0 的 SQL Server 联机丛书中的信息。有关更多信息，请参见如何访问 SQL Server 7.0 的 SQL Server 联机丛书。


开发工具

这些组件可以从安装程序的"选择组件"对话框中的"开发工具"分类上安装。若要安装开发工具，请选择"安装类型"屏幕中的自定义安装。调试程序接口是一个例外，选择典型安装时将包括此接口。

头和库

安装 C 语言开发人员开发程序（程序使用 OLE DB、ODBC、DB-Library、开放式数据服务、SQL-DMO、用于 C 语言的嵌入式 SQL 以及 MS DTC）所需的包含 (*.h) 文件和库 (*.lib) 文件。默认情况下，这些文件安装在 \Program Files\Microsoft SQL Server\80\Tools\DevTools\Include 和 \...\DevTools\Lib 目录下（共享工具位置）。

MDAC SDK

安装 MDAC 和 XML 软件开发工具包。

备份/还原 API

安装软件厂商开发自定义应用程序所需的头文件、示例程序和文档，备份和还原 Microsoft SQL Server 数据库。

调试程序界面

安装用于存储过程调试的界面。


代码示例

此示例组件包含在安装程序的"选择组件"对话框中"代码示例"分类中。该组件安装编写 Microsoft® SQL Server™ 2000 程序时用于参考的编程示例文件。默认情况下，这些文件安装在 \Program Files\Microsoft SQL Server\80\Tools\DevTools\Samples 目录下（共享工具位置）。可以安装部分或全部示例。

说明 使用虚拟设备备份或还原数据的示例代码包含在备份/还原 API（开发工具组件的一个子组件）中。有关更多信息，请参见开发工具。

选项 | 名称
ADO | Microsoft ActiveX® 数据对象
DBLIB | DB-Library
Desktop | Desktop Engine
DTS | 数据转换服务
ESQLC | 用于 C 语言的嵌入式 SQL (ESQL)
Misc | 杂项示例
MSDTC | Microsoft 分布式事务处理协调器 (MSDTC)
ODBC | 开放式数据库连接 (ODBC)
ODS | 开放式数据服务
OLE Automation | OLE 自动处理
Replication | 复制
Silver | 示例数据库架构
SQL-DMO | SQL 分布式管理对象
SQL-NS | SQL 命名空间
Utils | 示例实用工具
XML | XML 示例


网络库

在"网络库"屏幕上，可以选择为 Microsoft® SQL Server™ 2000 安装的网络库。网络库用于在运行 SQL Server 的客户端和服务器之间传递网络数据包。以动态链接库 (DLL) 形式实现的网络库使用特定的进程间通讯 (IPC) 机制执行通讯所需的网络操作。

服务器可以一次监听或监视多个网络库。安装期间，SQL Server 安装程序将所有 Net-Library 安装到计算机上，并允许配置部分或全部 Net-Library。如果没有配置某个 Net-Library，则服务器将无法监听该 Net-Library。安装完成后，可以使用服务器网络实用工具更改这些配置。

对于群集安装，仅可使用命名管道和 TCP/IP。安装群集实例时，不支持的网络库不可用。安装命名实例时，多协议、AppleTalk 和 Banyan VINES 协议不可用。

选项

命名管道

在 Microsoft Windows NT® 和 Microsoft Windows® 2000 上安装 SQL Server 需要命名管道支持。Microsoft Windows 98 不支持服务器端命名管道。默认情况下，SQL Server 监听命名管道 Net-Library 连接的标准管道。

命名管道名称

默认实例和命名实例的路径不同：

  • 默认实例：\\.\pipe\sql\query

  • 命名实例：\\.\pipe\MSSQL$instancename\sql\query

安装 SQL Server 后，可以更改管道名称。

TCP/IP 套接字

此 Net-Library 允许 SQL Server 通过使用标准 Windows 套接字作为 IPC 方法（通过 TCP/IP 协议）进行通讯。默认情况下，Microsoft SQL Server 2000 在所有操作系统上的安装都使用 TCP/IP 套接字 Net-Library。

使用 TCP/IP 套接字时请注意以下事项：

  • SQL Server 使用 UDP 端口 1434 从 SQL Server 2000 客户端建立连接。此套接字号码还通过 Internet 号码分配机构 (IANA) 保留给 SQL Server 使用。

  • 不要使用动态端口，也不要设置代理服务器地址，因为每当服务启动时，监听的端口会发生更改。

端口号

如果设置 SQL Server 监听 TCP/IP，则只有在希望 SQL Server 监听与默认地址不同的端口地址时，才可以在"端口号"框中键入 TCP/IP 端口号。此端口是 SQL Server 在接受来自 TCP/IP 套接字客户端的连接时所监听的端口。默认实例的默认号为 1433，这是 SQL Server 的正式 IANA 套接字号码。除非安装时设置了另一备用端口，否则，当命名实例第一次启动时，它将获得动态指派的端口。

远程 Winsock 代理服务器地址

如果设置 SQL Server 在 TCP/IP 套接字上监听使用 Microsoft Proxy Server 的代理服务器，则在设置 TCP/IP 套接字 Net-Library 时，请在"远程 WinSock 代理服务器地址"框中键入代理服务器地址。

多协议

多协议 Net-Library 使用 Windows NT 远程过程调用 (RPC) 功能。另外，多协议 Net-Library 还允许：

  • 采用由 Windows NT 支持的多数 IPC 机制通讯。只有 TCP/IP 套接字、NWLink IPX/SPX 和命名管道被认为是经过测试并得到支持。

  • 允许在所有 RPC 支持的协议上使用 Windows 身份验证。

  • 支持用于用户密码身份验证和数据的加密。

  • 为多数应用程序提供相当于本机 IPC Net-Library 的性能。

启用多协议加密

多协议加密仅用于与现有系统兼容。通过服务器网络实用工具（在运行安装程序后）启用的安全套接字层 (SSL) 加密方案是一种更加全面的加密解决方案。Windows 98 服务器上不支持多协议加密。

说明 命名实例不支持多协议 Net-Library。

NWLink IPX/SPX

此 Net-Library 允许 SQL Server 使用 NWLink IPX/SPX 协议进行通讯。

Novell Bindery 服务名

如果设置 SQL Server 监听 NWLink IPX/SPX，则安装程序将提示您输入 Novell Bindery 服务名，通过该名称在 Novell 网络上注册 SQL Server。默认服务名称是服务器计算机的计算机名。Net-Library 允许 Novell SPX 客户端连接到 SQL Server。

Windows 98 和 Windows 95 不支持服务器 NWLink IPX/SPX Net-Library。

AppleTalk ADSP

服务器 AppleTalk (ADSP) Net-Library 允许 Apple Macintosh® 客户端使用本机 AppleTalk（与 TCP/IP 套接字相反）连接 SQL Server。

说明 AppleTalk Net-Library 在 SQL Server 2000 中尚未得到增强，仍然在 SQL Server 7.0 功能级别上运行。未来的 SQL Server 2000 版本将不支持此 Net-Library，而且，命名实例也不支持它。

Apple Talk 服务对象

如果设置 SQL Server 监听 AppleTalk，安装程序将提示您输入 AppleTalk 服务对象名称。AppleTalk 服务对象名称由系统管理员指派。不必输入 AppleTalk 区域，因为在注册服务时使用了本地区域。

Windows 98 和 Windows 95 不支持 AppleTalk Net-Library。

Banyan VINES

SQL Server 支持将 Banyan VINES 顺序数据包协议 (SPP)（通过 Banyan VINES IP 网络协议）作为 IPC 方法。运行 Windows NT 的客户端和服务器的 Banyan VINES 支持仅可用于 Intel® 平台上的 SQL Server，而无法用于 Windows 98 和 Windows 95。

说明 Banyan VINES Net-Library 尚未得到改进，它运行在 SQL Server 7.0 级别的功能上。未来的 SQL Server 2000 版本将不支持此 Net-Library，而且，命名实例也不支持它。

Street Talk 服务名称

如果设置 SQL Server 监听 Banyan VINES，则安装程序将要求提供 StreetTalk 服务名称。其格式为：servicename@group@org，其中 servicename 是由 SQL Server 使用的基于计算机的 StreetTalk 服务名称，group 是其组，org 是其组织。必须首先通过 Banyan VINES 软件所包含的 MSERVICE 程序创建 SQL Server 使用的基于计算机的服务名。而且，若要启动 SQL Server，必须使用管理级权限登录。

对所有库启用协议加密

选择此复选框可启用对所有网络库进行协议加密。若要使用协议加密，必须具有服务器上的证书。有关获取证书的信息，请参见 Microsoft Windows 文档。如果您不具有证书，则可以在安装 SQL Server 之后使用服务器网络实用工具启用加密。

默认 Net-Library 设置

说明 运行 SQL 安装程序前必须启用 TCP/IP 网络。

所有 Net-Library 均由安装程序安装。下表显示了不同操作系统上的默认服务器和客户端 Net-Library 设置。

操作系统 | 服务器 Net-Library | 客户端 Net-Library 设置
Windows 98 | TCP/IP 套接字、共享内存 | TCP/IP 套接字
Windows 95 | 不可用 | TCP/IP 套接字
Windows NT 4.0（Server 和 Workstation） | TCP/IP 套接字、共享内存、命名管道 | TCP/IP 套接字、命名管道
Windows 2000（所有版本） | TCP/IP 套接字、共享内存、命名管道 | TCP/IP 套接字、命名管道

请参见

配置客户端 Net-Library

Net-Library 和网络协议


服务帐户

使用安装程序中的"服务帐户"屏幕，将登录帐户指派给两个 Microsoft® SQL Server™ 服务：SQL Server 和 SQL Server 代理程序。可以使用本地系统帐户或域用户帐户，并且，两个服务可使用同一帐户。默认设置是使用同一服务，且自动启动每个服务。若要使用默认设置，请输入域名密码，然后单击"下一步"。

还可以自定义每个服务的设置。可以为两个服务输入同一个登录帐户，也可以为每个服务分别指定帐户。以后若要更改"服务帐户"屏幕上的选项集，则请运行 Windows"控制面板"上的"服务"应用程序。

重要 若要创建或维护 Microsoft SQL Server™ 2000 故障转移群集，必须登录到拥有管理员特权的计算机上，即成为计算机或域"管理员"本地组的成员。对于群集则意味着您必须是所有群集节点的管理员。

在 Microsoft Windows NT 4.0 上运行 SQL Server 2000 时，除了以管理员身份登录外，还必须配置 SQL Server 和 SQL Server 代理程序作为管理员帐户运行。

选项

对每个服务使用同一帐户。自动启动 SQL Server 服务。

默认选项：一个帐户同时用于 SQL Server 和 SQL Server 代理程序。这些服务在操作系统启动时自动启动。

自定义每个服务的设置。

允许对两个服务使用不同的设置。

服务

选择要自定义设置的服务。

SQL Server

选择此选项自定义 Microsoft SQL Server 服务的设置。

SQL Server 代理

选择此选项自定义 Microsoft SQL Server 代理服务的设置。

服务设置

选择需要的服务设置。

使用本地系统帐户

本地系统帐户不需要设置密码，也没有 Windows NT 4.0 的网络访问权限，同时，它可能限制 SQL Server 安装与其它服务器交互。

说明 在 Windows 2000 中，本地系统帐户不允许网络访问。

使用域用户帐户

域用户帐户使用 Windows 身份验证设置并连接 SQL Server。默认情况下，将显示当前登录到计算机的域用户帐户的帐户信息。

用户名

接受或更改域用户名。

密码

输入域密码。

域

接受或更改域名。

自动启动服务

选择此选项后将在操作系统启动时自动启动服务。只有当自定义每个服务的设置时才能使用此选项。

SQL Server 代理服务依赖于 SQL Server 服务，因为只有自动启动 SQL Server 服务才能自动启动 SQL Server 代理服务。

说明 单击"服务帐户"对话框中"上一步"按钮时，返回后的窗口将回复为默认选项。原来指定的选项将不再保留。

请参见

设置 Windows 服务帐户

更改密码和用户帐户


身份验证模式

使用此屏幕选择用于 Microsoft® SQL Server™ 2000 安装的安全（身份验证）模式。如果选择"混合模式"，则提示输入和确认系统管理员密码。在成功地连接到 SQL Server 后，两种模式的安全机制便是一样的。

选项

Windows 身份验证模式

用户通过 Microsoft Windows® 用户帐户连接时，SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码。

混合模式（Windows 身份验证和 SQL Server 身份验证）

允许用户使用 Windows 身份验证或 SQL Server 身份验证进行连接。通过 Microsoft Windows 用户帐户连接的用户可以在 Windows 身份验证模式或混合模式中使用信任连接（由 Windows 验证的连接）。提供 SQL Server 身份验证是为了向后兼容。

添加 sa 登录密码

输入并确认系统管理员密码。

空白密码（建议不要使用）

如果用户试图通过提供空白登录名称连接到 SQL Server 的实例，SQL Server 将使用 Windows 身份验证。此外，如果用户试图使用特定的登录连接到配置为 Windows 身份验证模式的 SQL Server 实例，该登录会被忽略，而使用 Windows 身份验证。

请参见

添加 SQL Server 登录

指派 sa 密码

身份验证模式

创建安全帐户


选择授权模式

使用该对话框设置授权模式，以使客户端可以访问 Microsoft® SQL Server™ 的该实例。SQL Server 2000 支持两种客户端访问授权模式，一个用于设备，另一个用于处理器。

  • 本上下文中的设备可以是工作站、终端或运行连接到 SQL Server 实例的 SQL Server 应用程序的任何其它设备。

  • 处理器指的是安装在运行 SQL Server 2000 实例的计算机上的中央处理器 (CPU)。一个计算机上可以安装多个处理器，从而需要多个处理器许可证。

一旦设置了授权模式便无法再更改。可以在安装 SQL Server 之后添加设备或处理器许可证，这使用"控制面板"中的 SQL Server 2000 授权安装实用工具来进行。（请不要将该授权实用工具与 Windows 授权实用工具搞混，后者也可以在"控制面板"中找到。）

有关授权模式的更多信息，请参见 SQL Server 2000 的 Microsoft 许可协议。

选项

授权模式

当从"控制面板"访问该对话框时，安装过程中选择的模式在默认情况下为选中，同时显示以前选择的设备数或处理器数。

每客户

每客户授权模式要求每个将访问 SQL Server 2000 服务器的设备都具有一个客户端访问许可证。对于客户端连接到不止一个服务器的网络，每客户模式通常更划算。

在编辑框中，选择要授权的设备数。

处理器许可证

使用处理器许可，安装在运行 SQL Server 的计算机上的每个处理器都需要一个许可证。处理器许可证允许任意数目的设备访问服务器，无论它们是通过 Intranet 还是 Internet。

使用处理器许可，SQL Server 2000 可以利用每个安装的处理器，并支持不限数目的客户端设备。通过 Internet 提供对 SQL Server 数据库的访问的客户或拥有大量用户的客户通常选择处理器许可证。

在编辑框中选择要授权的处理器数。

继续

单击"继续"按钮以完成安装进程，或在修改要授权的设备数或处理器数以后单击该按钮。


安装远程配置

可以将 Microsoft® SQL Server™ 2000 安装在远程计算机（即未运行安装程序的计算机）上。执行远程安装之前：

  • 确保本地和远程计算机都在运行 Microsoft Windows NT® 或 Windows® 2000。

  • 确保本地和远程计算机都有 Intel® 兼容处理器。

  • 确保以拥有远程计算机管理特权的用户帐户登录本地计算机。

远程安装很象正常安装，带有两个额外的对话框：

  • "远程安装信息"对话框。当安装程序在作为群集组成部分的计算机上运行时也使用此对话框。有关更多信息，请参见远程安装信息。

  • "选择计算机"对话框。该对话框允许从连接域内计算机列表中选择远程计算机。此列表中可能包括无法用于此安装的计算机，这是因为安装到远程计算机前必须先授予权限。

    可以输入计算机网络名，而不从列表中选择。

请参见

计算机名称


远程安装信息

需要远程安装信息，以定义两种不同安装情况下的安全性：

  • 当选择在远程计算机上安装 Microsoft® SQL Server™ 2000 时。

  • 当安装程序在作为群集一部分的计算机上运行时，即使没有创建或维护 SQL Server 故障转移群集安装。

对于远程安装，SQL Server 安装收集在"安装"对话框中输入的信息，并将这些输入条目记录到 Setup.iss 文件中。同时，远程安装进程启动远程服务，将文件复制到 \admin$ 共享目录下，然后，按照 Setup.iss 中指定的选项在远程计算机上运行无值守安装。

对于群集计算机，则显示"远程安装信息"对话框，这是因为，在故障转移群集系统上进行的所有安装都需要管理员帐户，以便在两个节点上安装 Microsoft 分布式事务处理协调器，或者验证是否存在 MS DTC。必须输入管理员信息，该信息对故障转移群集系统的全部所选节点均有效。

选项

用户名、密码和域

指定 SQL Server 安装程序在远程计算机上启动服务时所用的用户帐户。此用户帐户必须是远程计算机上的管理员而且有安装程序源文件目录的读权限。

不要将在此屏幕上输入的用户帐户与下列用户帐户混淆：

  • 登录本地计算机时所用的用户帐户。

  • 在 SQL Server 安装程序中分配给 SQL Server 和 SQL Server 代理服务的用户帐户。

所有这些用户帐户均分别指定。但是，在所有情况下都可以使用同一用户信息。即，每个帐户都可以使用相同的名称、密码和 Windows 域。

目标计算机

在"计算机名"对话框中输入的远程计算机名以静态文本显示。

目标路径

远程计算机名称以及该远程计算机上的目录（统一命名规则 (UNC) 格式），SQL Server 将安装在该目录下。例如：

\\target_computer\C$\Program Files\Microsoft SQL Server

安装源文件

用于远程安装的安装程序文件的位置。

SQL 安装程序

SQL 安装程序

请参见

执行无值守安装


高级安装选项

选择"安装选项"安装程序屏幕中的"高级"选项后，"高级选项"对话框提供三种选择。

选项

记录无值守 .ISS 文件

创建用于无值守安装的安装程序初始化文件。

注册表重建

重建损坏安装的注册表。

维护故障转移群集的虚拟服务器

更改现有群集，例如修改名称、添加和删除群集的节点。

请参见

执行无值守安装

重建注册表

安装虚拟服务器配置

SQL Server 语言支持


安装虚拟服务器配置

本节主题提供了有关在安装和维护故障转移群集时使用的安装程序屏幕信息。


故障转移群集：定义虚拟服务器

使用"故障转移群集"屏幕定义新群集的虚拟服务器或维护现有群集的虚拟服务器定义。可以添加或删除 IP 地址，每个虚拟服务器可以有多个 IP 地址。

选项

虚拟服务器名称

显示虚拟服务器的网络名称。用户连接到该虚拟服务器时将看到此名称。

当升级到群集时，在"虚拟服务器名称"对话框中输入此名称。

IP 地址

输入 IP 地址或用于连接虚拟服务器的地址。

子网

显示 MSCS 提供的子网。

网络

显示安装 MSCS 时指派给每个子网的网络名称。

添加

向命名虚拟服务器中添加指定的 IP 地址和子网。

删除

从命名虚拟服务器删除指定的 IP 地址和子网。

请参见

安装故障转移群集前的准备工作

创建故障转移群集

升级到 SQL Server 2000 故障转移群集


群集管理屏幕

使用"群集管理"屏幕查看 Microsoft® SQL Server™ 2000 提供的群集定义，如果需要，可以对其进行更改。为虚拟服务器指定节点后，安装程序将安装或卸载每个节点上的 SQL Server 二进制文件。

注意 如果使用仲裁资源修改虚拟服务器的节点列表，则群集可能无法正确地进行故障转移。有关更多信息，请参见修改节点列表警告。

选项

可用节点

可添加到当前虚拟服务器定义中的计算机列表。如果想添加的计算机此时不可用，可以在以后运行安装程序，将其添加到虚拟服务器定义中。

配置节点

当前虚拟服务器定义中当前配置的计算机列表。列表顶部的计算机为首选节点。

不可用的节点

当前脱机或不能添加到群集定义中的计算机。

添加

将所选的可用节点添加到配置节点列表。

删除

从配置节点列表删除所选的配置节点。

请参见

故障转移群集

维护故障转移群集

群集磁盘选择屏幕

升级到 SQL Server 2000 故障转移群集


群集磁盘选择屏幕

安装新的虚拟服务器或升级到群集时，使用"群集磁盘选择"屏幕选择群集组。群集组由组内的一个或多个共享群集磁盘构成，一个群集组最多可包含一个 Microsoft® SQL Server™ 虚拟服务器。"群集磁盘选择"屏幕只列出将共享群集磁盘作为资源添加的组。有关群集磁盘的更多信息，请参见创建故障转移群集。

注意 不要选择仲裁磁盘（列表中的最后一个组），因为必须将仲裁磁盘视为特殊资源。如果选择仲裁磁盘为群集组，群集可能会出现故障。当您选择仲裁磁盘时，屏幕上将出现警告信息。有关更多信息，请参见仲裁磁盘选择警告。

使用小群集时，仲裁磁盘可能是唯一的选择。请仅在测试或研究故障转移群集时使用它。

重要 永远不要将仲裁组用于生产目的。

请参见

故障转移群集

维护故障转移群集

修改节点列表警告


仲裁磁盘选择警告

如果选择"群集磁盘选择"屏幕上的仲裁磁盘（列表中的最后一组），将出现下面的警告信息。该警告信息在 Microsoft® Windows NT® 4.0 和 Microsoft Windows® 2000 中都会出现。

强烈建议不要在 SQL Server 上使用仲裁组。

在 Windows 操作系统中，仲裁磁盘是一种特殊的资源。如果选择仲裁磁盘，以后可能会限制 Microsoft® SQL Server™ 对群集节点子网的所有权。但是，仲裁组的所有者列表必须包括群集中所有节点。

例如，可能存在一个双节点群集（节点 1 和节点 2），SQL Server 设置为使用仲裁磁盘组。如果后来将 SQL Server 修改成在虚拟服务器定义中只有节点 1，则仲裁磁盘组将无法进行到节点 2 的故障转移。在节点 1 的故障事件中，不仅丢失了虚拟 SQL Server，还丢失了整个 MSCS 群集。

只有 Windows NT 4.0 才是这样。在 Windows 2000 中，节点列表被忽略，仲裁磁盘组总能够故障转移到群集配置的任何节点上。但是，另一个问题又产生了。在前面的例子中，节点 2 上没有可用的 SQL Server 程序文件，但群集组可以进行到节点 2 的故障转移。在这种情况下，SQL Server 无法在节点 2 上运行，而包含仲裁磁盘的群集组总能进行故障转移，结果使 SQL Server 无法使用。

有关仲裁磁盘的更多信息，请参见 Windows NT 文档。

请参见

群集磁盘选择屏幕

修改节点列表警告

创建故障转移群集

故障转移群集的相关性


修改节点列表警告

在"群集管理"屏幕中，如果修改使用仲裁资源的 Microsoft® SQL Server™ 2000 虚拟服务器的节点列表，则会使用警告。如果修改了此类节点列表，则单击"下一步"时会出现下列警告：

修改仲裁资源的节点列表可能会使群集无法正确地进行故障转移。确实要这样做吗？

仲裁资源本身无法故障转移到任何未选作虚拟服务器定义一部分的服务器上。这可能会损害故障转移群集的可用性。有关更多信息，请参见 Microsoft Windows NT® 文档。

说明  在 Microsoft Windows® 2000 上运行 SQL Server 2000 时不会出现该问题。

请参见

仲裁磁盘选择警告

创建故障转移群集

故障转移群集的相关性


执行无值守安装

可以执行 Microsoft® SQL Server™ 2000 的无值守安装，此安装自动使用存储信息在安装程序屏幕完成项目输入。若要在不同的计算机上执行几个相同配置的 SQL Server 安装，无值守安装比较方便。无值守安装需要一个安装程序初始化文件，有几种不同的方法可创建该文件。

默认情况下，每次使用安装程序屏幕进行 SQL Server 安装时，所选择的选项都被记录进安装程序初始化文件 (Setup.iss) 中。Setup.iss 存放在系统根目录 (%windir%) 下，用于以后提供安装设置。

说明 不能执行无值守安装来安装 Microsoft SQL Server 2000 的故障转移群集。

使用记录无值守选项创建安装文件

在安装程序中，如果选择"高级选项"屏幕中的"记录无值守 .ISS 文件"选项，则在安装屏幕上选择的每个后续选项都记录进存储于系统根目录的 Setup.iss 文件中。SQL Server 文件并不在这一进程中安装。然后，可以直接运行 Setup.iss 文件，或者如有必要，在文本编辑器中进行修改。

记录无值守安装文件

SQL 安装程序

SQL 安装程序

SQL Server 光盘上的示例安装文件

Microsoft SQL Server 2000 光盘上包括几个示例安装程序初始化文件，同时还包括与适当的初始化文件一同运行安装程序的批处理文件。

客户端安装、典型安装和自定义安装包括示例初始化文件。（自定义安装文件包括所有功能。）下表显示的是用于无值守安装的文件。这些文件位于 SQL Server 2000 标准版、个人版和企业版光盘的根目录下。

无值守安装类型 | 示例批处理文件 | 示例安装程序初始化文件
SQL Server 典型安装。 | Sqlins.bat | Sqlins.iss
仅客户端工具：包括管理工具、客户端连接工具及其它工具（不包括服务器）。 | Sqlcli.bat | Sqlcli.iss
SQL Server 的自定义安装： 包括所有组件。 | Sqlcst.bat | Sqlcst.iss

说明 光盘上还包括与 Smssql.pdf 一起使用的批处理文件，此文件是一个包定义格式文件，用于在 SMS 中创建 SQL Server 包。有关更多信息，请参见使用 SMS 安装 SQL Server。

手动创建初始化文件

对于示例安装文件中所不包含的安装选项，必须使用文本编辑器创建自定义安装文件。例如：

  • 这些示例安装文件将 SQL Server 服务指派给本地系统帐户。若要在无值守安装期间指派域用户帐户，必须修改安装文件。

  • 通常情况下，只有 SQL Server 2000 的默认实例才使用无值守安装，但可以创建安装文件安装命名实例。

如果出于这样或那样的目的需要手动创建自定义的安装程序初始化文件，请参见手动创建安装文件。

运行无值守安装

可以使用示例批处理文件和安装程序初始化文件运行无值守安装，或者使用任何方法创建的自定义或非自定义安装文件，直接从命令提示符下运行 SQL Server 安装程序。

运行无值守安装

命令提示符

命令提示符

请参见

安装类型：典型、最小或自定义

如何记录无值守安装文件（安装程序）

手动创建安装文件


手动创建安装文件

当选择 Microsoft® SQL Server™ 2000 安装程序中的"记录无值守"选项时，可以交互式创建自定义安装程序初始化文件。还可以手工编辑文件，进一步改进和自定义安装程序初始化文件。

使用文本编辑器创建或修改安装文件

可以使用文本编辑器修改使用"记录无值守 .ISS 文件"选项生成的 Setup.iss 文件。还可以修改 SQL Server 2000 光盘上的某个示例安装文件 (*.iss)，或者创建自己的安装文件。

若要修改 SQL Server 光盘上某个示例安装程序初始化文件，则在文本编辑器中打开该文件并按需要进行修改。此文件的格式应与 Microsoft Windows® 初始化文件格式保持一致，并以 .iss 文件扩展名保存此文件。

示例安装程序初始化文件的格式

安装程序初始化文件是使用标准 Windows .ini 文件格式的文本文件。在随后的表中，将描述用于 Microsoft SQL Server 2000 典型安装的示例安装程序初始化文件的各个组成部分。可以从 SQL Server 光盘的根目录下找到此示例文件 (Sqlins.iss)。

说明 为 SQL Server 2000 命名实例创建安装文件时，必须指明要安装的实例名称以及在安装屏幕之间移动所需的路径。必须修改"实例名"对话框 [DlgInstanceName] 部分，以及安装文件中凡是出现实例名的地方。

[InstallShield Silent]

此部分是 InstallShield 所必需的。请不要更改其中的值。

条目 | 值 | 描述
版本 | v5.00.000 | InstallShield 静默响应文件的版本。
文件 | Response File | 表明这是响应文件。

[File Transfer]
条目 | 值 | 描述
OverwriteReadOnly | NoToAll | 不要重写只读文件。

[DlgOrder]

按对话框在值守安装过程中出现的顺序列出每个对话框。此部分中的列表必须和安装程序初始化文件的其它节相应。

条目 | 值 | 描述
Dlg0 | SdWelcome-0 | 初始化对话框
计数 | 14 | 此节列出的对话框数
Dlg1 | DlgMachine-0 | 下一个对话框
Dlg2 | DlgInstallMode-0 | 下一个对话框
Dlg3 | SdRegisterUser-0 | 下一个对话框
Dlg4 | SdLicense-0 | 下一个对话框
Dlg5 | CDKEYDialog-0 | 下一个对话框
Dlg 6 | DlgClientServer-0 | 下一个对话框
Dlg7 | DlgInstanceName-0 | 下一个对话框
Dlg8 | SetupTypeSQL-0 | 下一个对话框
Dlg9 | DlgServices-0 | 下一个对话框
Dlg10 | DLGSqlSecurity-0 | 下一个对话框
Dlg11 | DlgCollation-0 | 下一个对话框
Dlg12 | DlgServerNetwork-0 | 下一个对话框
Dlg13 | SdStartCopy-0 | 下一个对话框
Dlg14 | SdFinish-0 | 前一个对话框

[SdWelcome-0]

对应于"欢迎"对话框。

条目 | 值 | 描述
结果 | 1 | 下一页

[DlgMachine-0]

对应于"计算机名"对话框。

条目 | 值 | 描述
类型 | 1 | 本地计算机
结果 | 1 | 下一页

[DlgInstallMode-0]

对应于"安装选择"对话框。

条目 | 值 | 描述
类型 | 1 | 创建新实例
结果 | 1 | 下一页

[SdRegisterUser-0]

对应于"用户信息"对话框。

条目 | 值 | 描述
szName | <user name> | 用户名称；不需要公司名称。
结果 | 1 | 下一页。

[SdLicense-0]

对应于"软件许可协议"对话框。

条目 | 值 | 描述
结果 | 1 | 是

[CDKEYDialog-0]

对应于"CD-Key"对话框。

条目 | 值 | 描述
svCDKey | <CD key value> | 为每个安装指定
结果 | 1 | 下一页

[DlgClientServer-0]

对应于"安装定义"对话框。

条目 | 值 | 描述
类型 | 2 | 服务器和客户端工具
结果 | 1 | 下一页

[DlgInstanceName-0]

对应于"实例名称"对话框。

条目 | 值 | 描述
InstanceName | MSSQLSERVER | 默认实例名称（始终相同）。
InstanceName | <instance name> | 命名实例名称。
结果 | 1 | 下一页。

[SetupTypeSQL-0]

对应于"安装类型"对话框。

条目 | 值 | 描述
szDir | %PROGRAMFILES%\Microsoft SQL Server | SQL Server 程序文件的安装目录。
结果 | 301 | 典型 (301) （302 = 最小，303 = 自定义）。
szDataDir | %PROGRAMFILES%\Microsoft SQL Server | SQL Server 数据文件的安装目录（与程序文件相同）。

[DlgServices-0]

对应于"服务帐户"对话框。

条目 | 值 | 描述
本地域 | 3855 <other numeric value> | 对每个服务使用同一帐户。 若要自定义每个服务的设置，请参见安装程序初始化文件详细信息。
自动启动 | 15 | 启用自动启动服务。
结果 | 1 | 下一页。

[DlgSQLSecurity-0]

对应于"身份验证"对话框。下面的选项包括示例 Sqlins.iss 文件中没有的选项。

条目 | 值 | 描述
LoginMode | -1 | 使用系统默认安全设置。 Microsoft Windows NT® 默认设置为 Windows 身份验证模式。 Microsoft Windows 98 默认设置为混合模式，且无 sa 密码。
LoginMode | 1 | Windows 身份验证模式。
LoginMode | 2 | 混合模式。
szPwd | <choice of password> | 仅与混合模式安全设置一起使用。
结果 | 1 | 下一页。

[DlgCollation-0]

对应于"排序规则设置"对话框。

条目 | 值 | 描述
collation_name | ' ' | 空白时，使用系统默认排序规则。
collation_name | <collation designator> | 由用户选定。有关更多信息，请参见选择 SQL 排序规则。

[SdServerNetwork-0]

对应于"网络库"对话框。

条目 | 值 | 描述
NetworkLibs | 255 245 15 | 命名管道和 TCP/IP。 值 245 指仅 TCP/IP。 值 15 指仅命名管道。 若要自定义网络库设置，请参见安装程序初始化文件详细信息。
TCPPort | 1433 | TCP/IP 的端口地址。
TCPPrxy | 默认值 | 默认代理服务器或输入的代理服务器。
NMPPipeName | \\.\pipe\sql\query | 管道名。
结果 | 1 | 下一页。

[SdStartCopy-0]

对应于"开始复制文件"对话框。

条目 | 值 | 描述
结果 | 1 | 下一页。

[SdFinish-0]

对应于"安装完成"对话框。

条目 | 值 | 描述
结果 | 1 | 下一页。
bOpt1 | 0 | "库存"对话框的占位符。
bOpt2 | 0 | "库存"对话框的占位符。

请参见

执行无值守安装

安装程序初始化文件详细信息


安装程序初始化文件详细信息

创建自定义安装程序初始化文件时，"服务帐户"和"网络库"对话框中包含其它用于无值守安装的选项。

服务帐户对话框

若要自定义每项服务的设置，可计算本地域和自动启动条目的值。

本地域

如果希望 SQL Server 和 SQL Server 代理服务使用不同的登录帐户，可以计算应输入的本地域值。本地域值是下表中的值的按位逻辑"或"组合。有关更多信息，请参见 |（按位 OR）。

服务 | 使用的帐户 | 十六进制值
SQL Server | 本地系统帐户 | x0000000F
SQL Server 代理 | 本地系统帐户 | 0x00000F00
SQL Server | 域用户帐户 | 0x000000F0
SQL Server 代理 | 域用户帐户 | 0x0000F000

如果"域用户"帐户被用于任一服务，则必须在安装程序初始化文件中添加附加条目。

当 SQL Server 服务使用域帐户时，安装程序会查找以下条目的值：

  • SQLDomain = <domain name>

  • SQLDomainAcct = <domain user account>

  • SQLDomainPwd = <domain password:an encrypted password available only using setup screens>

当 SQL Server 代理服务使用域帐户时，安装程序会查找以下条目的值：

  • AgtDomain = <domain name>

  • AgtDomainAcct = <domain user account>

  • AgtDomainPwd = <domain password:an encrypted password available only using setup screens>
自动启动

"自动启动"选项的值是一个使用下列十六进制值的按位逻辑"或"组合：

Autostart SQL Server = 0x0000000F

Autostart SQL Server Agent = 0x000000F0

某一服务的值为零 (0) 则表明该服务未"自动启动"，需要手工启动。

网络库对话框

若要自定义网络库设置，可以计算"网络库"对话框内 NetworkLibs 条目的值。此 NetworkLibs 值是下表所示值的按位逻辑"或"组合。设置了网络库后，必须将附加信息输入到安装程序初始化文件内（如第三列所示）。

连接服务器时使用的网络库 | 按位"或"运算中使用的十六进制值 | 安装程序查找的附加信息
命名管道 | 0xF | NMPPipeName = <named pipe name>
TCP/IP 套接字 | 0xF0 | TCPPort = <port number> TCPPrxy = <Remote Winsock proxy address>
NW 链接 | 0xF000 | NWLinkObj = <Novell Bindary service name>
Apple Talk | 0xF0000 | ApplObj = <Apple Talk service object>
Banyan VINES | 0xF00000 | BanyanObj = <StreetTalk service name>

请参见

服务帐户

网络库

执行无值守安装


使用 SMS 安装 SQL Server

可以使用 Microsoft® Systems Management Server (SMS) 1.2 或更高版本，在企业内部运行 Microsoft Windows NT® 或 Microsoft Windows™ 2000 的多台服务器计算机上自动安装 Microsoft SQL Server™ 2000。

SQL Server 光盘包含包定义格式 (PDF) 文件 (Smssql.pdf)。此文件可以在 SMS 中自动创建 SQL Server 包。此后就可以分发并在 SMS 计算机上安装 SQL Server 包。

Smssql.pdf 文件包含关于如何在典型安装中与 Sqlins.iss（安装程序初始化文件）一起运行批处理文件 Smssqins.bat 的说明。SQL Server 光盘中包含这两个文件。

若要创建自定义命令文件，请编辑 Smssql.pdf 的一个复本。

请参见

执行无值守安装

手动创建安装程序文件


重建注册表

"高级选项"安装屏幕中的"注册表重建"选项可用于重建损坏的 Microsoft® SQL Server™ 安装的注册表。该进程仅修复注册表，不修复数据错误或 master 数据库。

重要 若要重建注册表，必须使用与初始安装过程相同的输入选项输入安装信息。如果您不知道或不确定此信息，请不要使用这种注册表重建进程。若要还原注册表，必须卸载并重新安装 SQL Server。

SQL 安装程序

SQL 安装程序

请参见

如何重建 master 数据库（重建 Master 实用工具）


处理 SQL Server 2000 的命名实例和多实例

使用 Microsoft® SQL Server™ 2000，可以选择在一台计算机上安装 SQL Server 的多个复本或多个实例。当设置新的 SQL Server 2000 安装或维护现有安装时，可以将其指定为：

  • SQL Server 的默认实例。

此实例由运行它的计算机的网络名称标识。使用以前版本 SQL Server 客户端软件的应用程序可以连接到默认实例。SQL Server 6.5 版或 SQL Server 7.0 版服务器可作为默认实例操作。但是，一台计算机上每次只能有一个版本作为默认实例运行。

  • SQL Server 的命名实例。

    该实例通过计算机的网络名称加上实例名称以<计算机名称>\<实例名称>格式进行标识。应用程序必须使用 SQL Server 2000 客户端组件连接到命名实例。计算机可以同时运行任意数目的 SQL Server 命名实例。同时，命名实例还可作为现有的 SQL Server 6.5 版或 SQL Server 7.0 版安装运行。该实例名不能超过 16 个字符。

    新实例名称必须以字母、"和"符号（&）或下划线 (_) 开头，可以包含数字、字母或其它字符。SQL Server 系统名称和保留名称不能用作实例名称。例如，"default"一词不能用作实例名称，因为它是安装程序使用的保留名称。

在使用 SQL Server 2000 个人版、SQL Server 2000 标准版或 SQL Server 2000 企业版时，单个和多个 SQL Server 2000 实例（默认或命名）都是可用的。

默认实例

在同时运行 SQL Server 7.0 的计算机上无法安装 SQL Server 2000 的默认实例。必须将 SQL Server 7.0 安装升级到 SQL Server 2000 默认实例，或者保留 SQL Server 7.0 的默认实例并安装 SQL Server 2000 的命名实例。

在运行 SQL Server 6.5 的计算机上可以安装 SQL Server 2000 的默认实例，但是 SQL Server 6.5 安装和 SQL Server 2000 默认实例无法同时运行。必须使用 SQL Server 2000 的 vswitch 命令提示实用工具在二者之间切换。

多实例

当一台计算机安装有多个 SQL Server 2000 实例时就出现多实例。每个实例的操作都与同一台计算机上的其它任何实例分开，而应用程序可以连接任何实例。在单台计算机上可以运行的实例数目取决于可用资源。SQL Server 2000 最多支持 16 个实例。

在未安装过 SQL Server 的计算机上安装 SQL Server 2000 时，安装程序指定安装默认实例。但是，通过清除"实例名"对话框的"默认"选项，也可以选择将 SQL Server 2000 安装为命名实例。

可以在下列任意时间安装 SQL Server 2000 命名实例：安装 SQL Server 2000 默认实例之前、安装 SQL Server 2000 默认实例之后，或者取代安装 SQL Server 2000 默认实例。

每个命名实例都由非重复的一组服务组成，并且对于排序规则和其它选项可以有完全不同的设置。目录结构、注册表结构和服务名称都反映了所指定的具体实例名称。

请参见

多个 SQL Server 实例

SQL Server 2000 实例的命名规则

命名实例的网络协议

多个 SQL Server 实例的文件位置

处理 SQL Server 的实例和版本


SQL Server 2000 实例的命名规则

由于可将 Microsoft® SQL Server™ 2000 设置为包含一个或多个命名实例和一个默认实例（也可无），所以要用新命名规则来区分不同的实例。

在早期版本中，SQL Server 安装由计算机名标识。在 SQL Server 2000 中，只有默认实例由计算机名标识。命名实例由计算机名和实例名的组合标识。此实例名也反映在相关 SQL Server 服务的名称中。

说明 每台计算机上只能有一个 SQL Server 默认实例。该默认实例可以是原样的 SQL Server 6.5 版或 SQL Server 7.0 版安装，也可以是设置为默认实例的 SQL Server 2000 安装。无论是何种情况，默认实例都使用同一服务名称、注册表结构、网络监听点和其它已在 SQL Server 7.0 中使用的默认设置。

默认实例和命名实例的服务名称

安装 SQL Server 默认实例时，服务名称保持为 MSSQLServer 和 SQLServerAgent（与 SQL Server 7.0 中相同)。

安装 SQL Server 命名实例时，服务名称更改为：

  • MSSQL$InstanceName（用于 MSSQLServer 服务）。

  • SQLAgent$InstanceName（用于 SQLServerAgent 服务）。

Microsoft 分布式事务处理协调器和 Microsoft 搜索服务只安装一次，可供所有已安装的 SQL Server 实例同时使用。

请参见

多个 SQL Server 实例


命名实例的网络协议

安装 Microsoft® SQL Server™ 2000 默认实例时将启用标准网络地址。例如，命名管道使用 \\.\pipe\sql\query 和 TCP/IP 套接字连接到端口 1433。

选择命名实例时，仅命名管道、TCP/IP 和 NWLink IPX/SPX 协议可受支持。命名管道的网络地址默认为 \\Computername\Pipe\MSSQL$instancename\Sql\Query。第一次启动实例时，（默认情况下）将动态选择由 TCP/IP 和 NWLink IPX/SPX 所使用的端口地址。

请参见

与多个实例进行通讯

多个 SQL Server 实例

网络库


多个 SQL Server 实例的文件位置

Microsoft® SQL Server™ 2000 的每个命名实例都有特定位置存放程序文件，而另一个特定位置存放数据文件，这一点与 SQL Server 默认实例有所不同。

说明 命名实例不必和多实例相同。可以拥有一个命名实例，也可以拥有多个命名实例。有关更多信息，请参见 多个 SQL Server 实例。

对于每个已安装的 SQL Server 命名实例，默认目录如下：

  • \Program Files\Microsoft SQL Server\MSSQL$InstanceName\Binn 存放可执行文件。

  • \Program Files\Microsoft SQL Server\MSSQL$InstanceName\Data 存放数据文件。

所有实例（包括默认实例和命名实例）的共享工具都位于 \Program Files\Microsoft SQL Server\80\Tools 目录中。可以为多实例的程序和数据文件指定除默认位置外的其它文件路径。

最简单的 Microsoft SQL Server 2000 多实例情形如下图所示：默认实例和一个命名实例 Instance1。命名实例有其完整的一套数据文件和可执行文件。默认实例和命名实例所使用的公用文件都安装在文件夹 \Program Files\Microsoft SQL Server\80 中。

说明 如果将 Microsoft SQL Server 7.0 版作为默认安装与 SQL Server 2000 命名实例同时使用，则程序和数据文件都位于 C:\Mssql7 下，这是 SQL Server 7.0 文件的默认位置。

寻找安装位置

如果不能确定实例路径，可以查询注册表了解某特定实例的安装路径。插入适当的实例名称后，在命令提示符下运行以下命令：

C:\> REG QUERY HKLM\Software\Microsoft\Microsoft SQL Server\InstanceName\MSSQLServer\Setup\SQLPath

说明 Microsoft Windows® 2000 资源工具包提供 REG QUERY 工具。

请参见

SQL Server 2000 的文件路径

多个 SQL Server 实例


删除 SQL Server 2000 多实例

删除Microsoft® SQL Server™ 2000 默认实例或命名实例时，同时将删除该实例的数据文件和注册表键值。除非从计算机上删除所有 SQL Server 2000 实例，否则无法删除工具，因为所有已安装的实例共享这些工具。

若要删除单个 SQL Server 2000 实例或删除所有安装的实例，请参见如何删除 SQL Server 2000 (Windows)。


处理 SQL Server 的实例和版本

Microsoft® SQL Server™ 2000 中的多实例为使用已安装在计算机上的 Microsoft SQL Server 早期版本提供了多种增强途径。安装和运行 SQL Server 2000 的同时，可以原样保留以前的安装。例如，可以同时运行 SQL Server 7.0 版和 SQL Server 2000 的命名实例，或者可以在版本切换配置中与 SQL Server 2000 一切运行 SQL Server 6.5 版。如果需要在同一台计算机上安装三种不同版本的 SQL Server，有多种实现方法。

另外，SQL Server 所有版本的用户均可安装并同时运行 SQL Server 2000 的多个实例以及一个或多个早期版本。

SQL Server 2000 与以前的安装组合使用的情形包括：

  • 与 SQL Server 2000 的默认实例或命名实例一起使用 SQL Server 6.5 版。

  • 与 SQL Server 2000 命名实例一起运行 SQL Server 7.0。

  • 处理 SQL Server 的三个版本：SQL Server 6.5 版、SQL Server 7.0 版和 SQL Server 2000。

说明 由于引入了多个实例，对于 SQL Server 2000 而言，默认实例是一个新的概念。如果 SQL Server 6.5 版或 SQL Server 7.0 版与 SQL Server 2000 安装在同一台计算机上，则 SQL Server 6.5 版或 SQL Server 7.0 版均可作为 SQL Server 的默认实例运行。（默认实例由运行它的计算机的网络名称标识。）有关更多信息，请参见处理 SQL Server 2000 的命名实例和多实例。

使用 SQL Server 7.0 的 SQL Server 联机丛书

当在计算机上保留 Microsoft SQL Server 7.0 版，并安装 SQL Server 2000 的命名实例时，SQL Server 7.0 的 SQL Server 联机丛书仍保留在原来的位置：即 C:\Mssql7\Books 上。在这种并行配置中，SQL Server 7.0 的联机丛书仍可从"开始"菜单中的 SQL Server 7.0 程序组中访问。

说明 当 SQL Server 2000 的命名实例与 SQL Server 7.0 一起安装时，其它共享工具（如代码示例、脚本和模板）不是这样。所有来自 7.0 安装的其它共享工具被复制到存储位置，同时指针指向替换这些工具的早期版本的 SQL Server 2000 工具。SQL Server 7.0 的联机丛书文件不是这样被重定向 — 它们仍可使用。

当 SQL Server 7.0 升级到 SQL Server 2000 的默认版本时，也将升级 7.0 联机丛书文件。即，用 SQL Server 2000 联机丛书替换它们。

不管您是否安装了 SQL Server 7.0，都可以访问 SQL Server 7.0 文档中的信息。有关更多信息，请参见如何访问 SQL Server 7.0 的 SQL Server 联机丛书。

请参见

与 SQL Server 2000 一起使用 SQL Server 6.5

与 SQL Server 2000 命名实例一起运行 SQL Server 7.0

处理 SQL Server 的三个版本


与 SQL Server 2000 一起使用 SQL Server 6.5

如果已安装了 Microsoft® SQL Server™ 6.5 版，可以保留该 SQL Server 6.5 版安装，同时，还可以安装 SQL Server 2000 的默认实例或命名实例。这里不涉及版本升级。但是，可用版本切换在 SQL Server 6.5 版和 SQL Server 2000 之间进行转换。另外，可使用 SQL Server 2000 工具控制 SQL Server 2000 和 SQL Server 6.5 版。

警告 安装 SQL Server 2000 后，SQL Server 6.5 版跟踪实用程序和其它早期工具将不再可用。

若要与 SQL Server 6.5 并存安装 SQL Server 2000：

  • 应原样保留 SQL Server 6.5 配置。

  • 安装 SQL Server 2000 时，在"实例名"对话框中选择默认实例或命名实例。

  • 将版本从 SQL Server 6.5 切换到 SQL Server 2000 默认实例。

说明 建议不要从 SQL Server 2000 切换回 SQL Server 6.5。

下图显示在版本切换配置中与 SQL Server 2000 一起安装 SQL Server 6.5。

请参见

在 SQL Server 6.5 和 SQL Server 2000 之间切换

与 SQL Server 2000 命名实例一起运行 SQL Server 7.0

处理 SQL Server 的三个版本


与 SQL Server 2000 命名实例一起运行 SQL Server 7.0

可以在计算机上原样保留 Microsoft® SQL Server™ 7.0 版安装，同时，还可在同一台计算机上安装 SQL Server 2000 的命名实例。该配置使您得以同时运行原有的 SQL Server 7.0 安装和后来安装的 SQL Server 2000 命名实例，而无需使用 vswitch 命令提示实用工具。

若要与现有的 SQL Server 2000 命名实例一起运行原样的 SQL Server 7.0 安装，必须：

  • 保持 SQL Server 7.0 版原样且无需将其升级到 SQL Server 2000。SQL Server 7.0 作为 SQL Server 默认实例运行，并通过运行它的计算机的网络名称对其进行标识。

  • 安装 SQL Server 2000 命名实例，并通过运行它的计算机的网络名称和实例名同时对其进行标识。

下图说明此种配置。

请参见

如何安装 SQL Server 2000 命名实例（安装程序）

处理 SQL Server 的三个版本


处理 SQL Server 的三个版本

本主题描述处理 SQL Server 6.5 版、SQL Server 7.0 版和 SQL Server 2000 的两种情形。一种情形是同时安装三个版本，无版本升级，但 SQL Server 6.5 与 SQL Server 7.0 之间存在版本切换。另一种情形涉及 SQL Server 7.0 升级到 SQL Server 2000，然后 SQL Server 6.5 与 SQL Server 2000 之间进行版本切换。

以上任何一种情况下都可以安装 SQL Server 2000 的多命名实例。但是，同一时间只能运行两个不同版本的 SQL Server 版本，版本切换方式有两种：

  • 在 SQL Server 6.5 和 SQL Server 7.0 之间切换。

  • 在 SQL Server 6.5 和 SQL Server 2000 之间切换。
使用版本切换

若要在运行 SQL Server 2000 多实例的同时在 SQL Server 6.5 与 SQL Server 7.0 之间切换：

  • 原样保留 SQL Server 6.5 配置。

  • 原样保留 SQL Server 7.0 配置，无需将其升级到 SQL Server 2000。

  • 安装一个或多个 SQL Server 2000 命名实例。

下图显示 SQL Server 2000 的命名实例和 SQL Server 7.0 版的现有安装如何同时运行。可将 SQL Server 6.5 版切换成默认实例以代替 SQL Server 7.0。

在将 SQL Server 7.0 版升级后，若要在 SQL Server 6.5 与 SQL Server 2000 之间进行版本切换，必须：

  • 原样保留 SQL Server 6.5 配置。

  • 安装 SQL Server 7.0，同时准备将 SQL Server 7.0 升级到 SQL Server 2000。

  • 运行安装程序。当安装程序检测到 SQL Server 7.0 时，将 SQL Server 7.0 升级到 SQL Server 2000 的默认实例。（在"现有安装选项"对话框内选择"升级"，并选定"实例名"对话框内的"默认"复选框。）此时，SQL Server 7.0 安装将不复存在，它已由 SQL Server 2000 的默认实例代替。

下图显示以上配置及 SQL Server 2000 的三个命名实例。

请参见

从 SQL Server 7.0 升级到 SQL Server 2000

与 SQL Server 2000 一起使用 SQL Server 6.5

与 SQL Server 2000 命名实例一起运行 SQL Server 7.0


用于国际支持的排序规则选项

在 Microsoft® SQL Server™ 2000 中，不需要为字符数据单独指定代码页和排序次序，也不需要指定用于 Unicode 数据的排序规则。而只需指定要使用的排序规则名称和排序规则。术语"排序规则"是指一套决定数据如何排序和比较的规则。字符数据使用定义了正确字符顺序的规则进行排序，规则中包含指定区分大小写、重音符号、日文假名字符类型和字符宽度等选项。Microsoft SQL Server 2000 排序规则包括以下分组：

  1. Windows 排序规则

    Windows 排序规则基于为相关联的 Windows 区域设置所定义的规则对存储字符数据的规则进行定义。Windows 基本排序规则指定应用字典排序时所用的字母表或语言，以及用于存储非 Unicode 字符型数据的代码页。有关更多信息，请参见排序规则。

  2. SQL 排序规则

    提供 SQL 排序规则是为了与 Microsoft SQL Server 早期版本中的排序次序兼容。有关更多信息，请参见使用 SQL 排序规则。

安装之后更改排序规则

安装 SQL Server 2000 时，使用正确的排序规则设置十分重要。可以在运行安装程序之后更改排序规则设置，但是必须重建数据库并重新装载数据。建议在单位内部为这些排序规则选项制订标准。如果服务器之间的排序规则设置不一致，服务器之间的活动则可能失败。

请参见

选择 SQL 排序规则

如何重建 master 数据库（重建 Master 实用工具）

选择 SQL 排序规则

Windows 排序规则名称


安装过程中的排序规则设置

 安装 SQL Server

选择 SQL 排序规则

使用"排序规则设置"屏幕修改默认的排序规则设置。使用"Windows 区域设置"选项匹配 Microsoft® SQL Server® 2000 实例中的排序规则设置。使用"SQL 排序规则"匹配与 SQL Server 早期版本中的排序次序相兼容的设置。

Windows 区域设置

仅当 SQL Server 的安装必须与 SQL Server 2000 另一实例使用的排序规则设置匹配或必须与另一计算机的 Windows 区域设置匹配时，才需更改"Windows 区域设置"（Windows 排序规则）的默认设置。

排序规则指示器

请从列表中选择特定的 Windows 排序规则的名称，例如：

  • 对于美国英语字符集使用 Latin1_General（代码页 1252）。

  • 对于西班牙语的所有变体（也使用与美国英语字符集相同的字符集）使用 Modern_Spanish（代码页 1252）。

  • 对于阿拉伯语的所有变体（使用阿拉伯语字符集）使用 Arabic（代码页 1256）。

  • 对于日语的 Unicode 版本使用 Japanese_Unicode（代码页 932）。此版本具有与 Japanese 不同的排序次序，但二者的代码页同为 932。

有关更多信息，请参见 Windows 排序规则名称。

排序次序

选择用于选定的排序规则指示器的"排序次序"选项。二进制是最快的排序次序且区分大小写。如果选择了"二进制"，则"区分大小写"、"区分重音"、"区分假名"和"区分宽度"选项不可用。有关更多信息，请参见 Windows 排序规则排序样式。

SQL 排序规则

"SQL 排序规则"选项用于与 Microsoft SQL Server 的早期版本兼容。选择该选项以便与 SQL Server 7.0 版、SQL Server 6.5 版或更早版本兼容的设置匹配。有关更多信息，请参见 SQL 排序规则。


Windows 排序规则排序样式

在"排序规则设置"屏幕上，可以选择"二进制"排序次序，也可以定义用于选定的排序规则指示器（Windows 排序规则名称）的排序样式。

说明 对于 Windows 排序规则，nchar、nvarchar 和 ntext 数据类型具有与 char、varchar 和 text 数据类型相同的排序行为。有关更多信息，请参见 SQL Server 排序规则基础知识。

排序次序 | 描述
二进制 | 根据为每个字符所定义的位模式对 Microsoft® SQL Server™ 表中的数据进行排序和比较。二进制排序次序区分大小写，先小写字母后大写字母并且区分重音。这是最快的排序次序。 如果不选中此选项，SQL Server 将按照字典中定义的相关语言或字母表的排序及比较规则进行排序。
区分大小写 | 指定 SQL Server 区分大小写字母。 如果不选中此规则选项，SQL Server 会认为大小写字母等价。如果不选中"区分大小写"选项，SQL Server 就不定义大小写字母之间的高低排序关系。
区分重音 | 指定 SQL Server 区分重音和非重音字符。例如，"a"不等同于"á"。 如果不选中此选项，SQL Server 会认为重音与相应的非重音字母等价。
区分假名 | 指定 SQL Server 区分两种类型的日文假名字符：平假名和片假名。 如果没有选择，SQL Server 会认为平假名和片假名等价。
区分宽度 | 指定 SQL Server 区分相同字符的单字节表示法（半角）和双字节表示法（全角）。 如果没有选择，则 SQL Server 将认为相同字符的单字节表示法和双字节表示法等效。

请参见

选择 SQL 排序规则

Windows 排序规则名称


Windows 排序规则名称

使用下表使排序规则设置与另一个 Windows 区域设置保持一致。

在"控制面板"的"区域设置"应用程序（Microsoft® Windows NT® 4.0、Microsoft Windows 98® 和 Microsoft Windows 95）或"区域选项"应用程序 (Microsoft Windows 2000) 中找到 Windows 区域设置名称，然后使用此表找到相应的排序规则指示器和代码页。

Windows 区域设置 | LCID（区域设置 ID） | 排序规则指示器 | 代码页
南非荷兰语 | 0xx436 | Latin1_General | 1252
阿尔巴尼亚语 | 0x41C | Albanian | 1250
阿拉伯语（沙特阿拉伯） | 0x401 | Arabic | 1256
阿拉伯语（伊拉克） | 0x801 | Arabic | 1256
阿拉伯语（埃及） | 0xC01 | Arabic | 1256
阿拉伯语（利比亚） | 0x1001 | Arabic | 1256
阿拉伯语（阿尔及利亚） | 0x1401 | Arabic | 1256
阿拉伯语（摩洛哥） | 0x1801 | Arabic | 1256
阿拉伯语（突尼斯） | 0x1C01 | Arabic | 1256
阿拉伯语（阿曼） | 0x2001 | Arabic | 1256
阿拉伯语（也门） | 0x2401 | Arabic | 1256
阿拉伯语（叙利亚） | 0x2801 | Arabic | 1256
阿拉伯语（约旦） | 0x2C01 | Arabic | 1256
阿拉伯语（黎巴嫩） | 0x3001 | Arabic | 1256
阿拉伯语（科威特） | 0x3401 | Arabic | 1256
阿拉伯语（阿拉伯联合酋长国） | 0x3801 | Arabic | 1256
阿拉伯语（巴林群岛） | 0x3C01 | Arabic | 1256
阿拉伯语（卡塔尔） | 0x4001 | Arabic | 1256
巴斯克语 | 0x42D | Latin1_General | 1252
白俄罗斯语 | 0x423 | Cyrillic_General | 1251
保加利亚语 | 0x402 | Cyrillic_General | 1251
加泰罗尼亚语 | 0x403 | Latin1_General | 1252
繁体中文（台湾） | 0x30404 | Chinese_Taiwan_Bopomofo | 950
繁体中文（台湾） | 0x404 | Chinese_Taiwan_Stroke | 950
简体中文（中华人民共和国） | 0x804 | Chinese_PRC | 936
简体中文（中华人民共和国） | 0x20804 | Chinese_PRC_Stroke | 936
中文（新加坡） | 0x1004 | Chinese_PRC | 936
克罗地亚语 | 0x41a | Croatian | 1250
捷克语 | 0x405 | Czech | 1250
丹麦语 | 0x406 | Danish_Norwegian | 1252
荷兰语（标准） | 0x413 | Latin1_General | 1252
荷兰语（比利时） | 0x813 | Latin1_General | 1252
英语（美国） | 0x409 | Latin1_General | 1252
英语（英国） | 0x809 | Latin1_General | 1252
英语（加拿大） | 0x1009 | Latin1_General | 1252
英语（新西兰） | 0x1409 | Latin1_General | 1252
英语（澳大利亚） | 0xC09 | Latin1_General | 1252
英语（爱尔兰） | 0x1809 | Latin1_General | 1252
英语（南非） | 0x1C09 | Latin1_General | 1252
英语（加勒比） | 0x2409 | Latin1_General | 1252
英语（牙买加） | 0x2009 | Latin1_General | 1252
爱沙尼亚语 | 0x425 | Estonian | 1257
法罗语 | 0x0438 | Latin1_General | 1252
现代波斯语 | 0x429 | Arabic | 1256
芬兰语 | 0x40B | Finnish_Swedish | 1252
法语（标准） | 0x40C | French | 1252
法语（比利时） | 0x80C | French | 1252
法语（瑞士） | 0x100C | French | 1252
法语（加拿大） | 0xC0C | French | 1252
法语（卢森堡） | 0x140C | French | 1252
乔治亚语（现代） | 0x10437 | Georgian_Modern_Sort | 1252
德语（电话簿排序） | 0x10407 | German_PhoneBook | 1252
德语（标准） | 0x407 | Latin1_General | 1252
德语（瑞士） | 0x807 | Latin1_General | 1252
德语（澳大利亚） | 0xC07 | Latin1_General | 1252
德语（卢森堡） | 0x1007 | Latin1_General | 1252
德语（列支敦士登） | 0x1407 | Latin1_General | 1252
希腊语 | 0x408 | Greek | 1253
希伯来语 | 0x40D | Hebrew | 1255
印地语 | 0x439 | Hindi | 仅 Unicode
匈牙利语 | 0x40E | Hungarian | 1250
匈牙利语 | 0x104E | Hungarian_Technical | 1250
冰岛语 | 0x40F | Icelandic | 1252
印度尼西亚语 | 0x421 | Latin1_General | 1252
意大利 | 0x410 | Latin1_General | 1252
意大利语（瑞士） | 0x810 | Latin1_General | 1252
日语 | 0x411 | Japanese | 932
日语 (Unicode) | 0x10411 | Japanese_Unicode | 932
朝鲜语 (Extended Wansung) | 0x412 | Korean_Wansung | 949
朝鲜语 | 0x412 | Korean_Wansung_Unicode | 949
拉脱维亚语 | 0x426 | Latvian | 1257
立陶宛语 | 0x427 | Lithuanian | 1257
立陶宛语 | 0x827 | Lithuanian_Classic | 1257
马其顿语 | 0x41C | Cyrillic_General | 1251
挪威语（博克马尔语） | 0x414 | Danish_Norwegian | 1252
挪威语（尼诺斯克） | 0x814 | Danish_Norwegian | 1252
波兰语 | 0x415 | Polish | 1250
葡萄牙语（标准） | 0x816 | Latin1_General | 1252
葡萄牙语（巴西） | 0x416 | Latin1_General | 1252
罗马尼亚语 | 0x418 | Romanian | 1250
俄语 | 0x419 | Cyrillic_General | 1251
塞尔维亚语（拉丁） | 0x81A | Cyrillic_General | 1251
塞尔维亚语（西里尔) | 0xC1A | Cyrillic_General | 1251
斯洛伐克语 | 0x41B | Slovak | 1250
斯洛文尼亚语 | 0x424 | Slovenian | 1250
西班牙语（墨西哥） | 0x80A | Traditional_Spanish | 1252
西班牙语（传统） | 0x40A | Traditional_Spanish | 1252
西班牙语（现代） | 0xC0A | Modern_Spanish | 1252
西班牙语（危地马拉） | 0x100A | Modern_Spanish | 1252
西班牙语（哥斯达黎加） | 0x140A | Modern_Spanish | 1252
西班牙语（巴拿马） | 0x180A | Modern_Spanish | 1252
西班牙语（多米尼加共和国） | 0x1C0A | Modern_Spanish | 1252
西班牙语（委内瑞拉） | 0x200A | Modern_Spanish | 1252
西班牙语（哥伦比亚） | 0x240A | Modern_Spanish | 1252
西班牙语（秘鲁） | 0x280A | Modern_Spanish | 1252
西班牙语（阿根廷） | 0x2C0A | Modern_Spanish | 1252
西班牙语（厄瓜多尔） | 0x300A | Modern_Spanish | 1252
西班牙语（智利） | 0x340A | Modern_Spanish | 1252
西班牙语（乌拉圭） | 0x380A | Modern_Spanish | 1252
西班牙语（巴拉圭） | 0x3C0A | Modern_Spanish | 1252
西班牙语（玻利维亚） | 0x400A | Modern_Spanish | 1252
瑞典语 | 0x41D | Finnish_Swedish | 1252
泰语 | 0x41E | Thai | 874
土耳其语 | 0x41F | Turkish | 1254
乌克兰语 | 0x422 | Ukrainian | 1251
乌尔都语 | 0x420 | Arabic | 1256
越南语 | 0x42A | Vietnamese | 1258

请参见

选择 SQL 排序规则

排序规则

Windows 排序规则排序样式

Windows 排序规则名称


使用 SQL 排序规则

SQL 排序规则设置对应于安装类型。通常，选择支持您的站点最常用的 Windows 区域设置的 SQL 排序规则。有关识别站点的 Windows 区域设置的更多信息，请参见"Windows 控制面板"中的"区域设置"。多数情况下，计算机会运行与用户语言需求相匹配的 Windows 区域设置，因此安装程序会自动检测 Windows 区域设置并选择合适的 SQL 排序规则。

SQL 排序规则控制：

  • 用于存储 Microsoft® SQL Server™ 中非 Unicode 数据的代码页。

  • 控制 SQL Server 如何对以 Unicode 和非 Unicode 数据类型存储的字符进行排序和比较的规则。

在下列情况下选择 SQL 排序规则：

  • 通过 SQL Server 6.5 版或 SQL Server 7.0 版的现有实例使用复制功能。

  • 应用程序的代码依赖于以前的 SQL Server 排序规则的行为。

从 SQL Server 7.0 升级到 SQL Server 2000 仍保留先前的 SQL 排序规则设置，不需要选择排序规则。

使用下表确定是否需要选择排序规则，以及如果需要，应选择哪种排序规则。

安装方式 | 选择排序规则
安装在新的系统上，没有与任何类型的现有系统同步的兼容性要求 | 使用安装程序所标识的区域设置，然后选择需要的二进制、区分大小写或其它选项。 在此 SQL Server 版中，当安装程序检测到计算机正在运行美国英语区域设置时，将自动选择 SQL 排序规则：字典顺序、区分大小写、用于 1252 字符集。 若要选择等价的 Windows 排序规则，请选择"排序规则指示器"，然后选择 Latin1_General 排序规则指示器，请不要选择"区分大小写"，但选择"区分重音"。
将 SQL Server 6.5 或 SQL Server 7.0 的安装升级为 SQL Server 2000 默认实例，或者安装可与 SQL Server 6.5 安装进行版本切换的 SQL Server 2000 默认实例 | 使用安装程序所选的 SQL 排序规则。
与现有 SQL Server 2000 实例同步（例如进行复制） | 在现有实例上选择 SERVERPROPERTY(N'Collation')，并指定该排序规则。如果现有实例的排序规则名称以 SQL 开头，请在安装程序中选择相同的 SQL 排序规则。如果现有实例的排序规则名称不以 SQL 开头，则排序规则名称指的是 Windows 排序规则名称，它由排序规则指示器名称及之后跟随的对所指定的二进制、区分大小写、区分重音、区分假名和区分宽度的选项的描述组成。在安装程序中选择相同的 Windows 排序规则名称和排序选项。
与现有 SQL Server 6.5 或 SQL Server 7.0 的安装同步 | 在现有系统上执行 sp_helpsort，然后使用排序 ID 选择 SQL 排序规则，使 SQL Server 2000 实例与现有的安装兼容。 有关更多信息，请参见选择 SQL 排序规则。
与另外一台计算机的 Windows 区域设置同步 | 在"控制面板"中，从区域设置应用程序（Microsoft Windows NT® 4.0、Microsoft Windows® 98 和 Microsoft Windows 95）中，或从区域选项应用程序 (Microsoft Windows 2000) 中查找区域设置名称，然后使用 Windows 排序规则名称主题中提供的表。按照 Windows 排序规则排序样式主题中的解释，设置排序选项。

说明 当执行依赖排序规则的操作时，被引用对象所使用的 SQL Server 排序规则必须使用计算机上运行的操作系统所支持的代码页。有关更多信息，请参见指定排序规则。

请参见

SQL 排序规则示例

选择排序规则

sp_helpsort

设置客户端代码页

SQL Server 排序规则基础知识

SERVERPROPERTY


SQL 排序规则示例

以下是 Microsoft® SQL Server™ 2000 安装程序中的"排序规则设置"屏幕上列出的 SQL 排序规则示例：

二进制次序、用于 437（美国英语）字符集。

该排序规则对美国英语字符集（代码页 437 - MS-DOS Latin US）使用二进制排序次序（基于编码值的简单排序）。

在 Transact-SQL 中，字符串 SQL_Latin1_General_Cp437_BIN 用于指定该设置。

字典顺序、区分大小写、区分重音、用于 1252 字符集。

该排序规则对美国英语字符集（代码页 1252 - Windows Latin 1 ANSI，排序次序 ID 54）使用字典排序规则。排序时不考虑大、小写字符和重音符号。

在 Transact-SQL 中，字符串 SQL_Latin1_General_CP1_CI_AI 用于指定该设置。

罗马尼亚字典顺序、区分大小写、用于 1250（中欧语）字符集。

该排序规则使用罗马尼亚语字典顺序排序规则，并使用中欧语字符集（代码页 1250，排序次序 ID 89）。

在 Transact-SQL 中，字符串 SQL_Romanian_Cp1250_CS_AS 用于指定该设置。

请参见

选择 SQL 排序规则

选择 SQL 排序规则

使用 SQL 排序规则

SQL 排序规则名称


选择 SQL 排序规则

在"排序规则设置"屏幕中选择 SQL 排序规则时，请使用下表使 Microsoft® SQL Server™ 2000 安装与 SQL Server 早期版本的安装兼容。

说明 每个 SQL 排序规则名称在 T-SQL 代码中都有等效的字符串。有关排序次序标识符和 T-SQL 版本的列表，请参见 SQL 排序规则名称。

在下表中，左列列出 SQL Server 7.0 或 SQL Server 6.5 实例的排序次序 ID。右列列出了为兼容性推荐的 SQL Server 2000 排序规则。

排序次序 ID | SQL 排序规则名称
30 | 二进制次序、用于 437（美国英语）字符集。
31 | 字典顺序、区分大小写、用于 437（美国英语）字符集。
32 | 字典顺序、不区分大小写、用于 4374（美国英语）字符集。
33 | 字典顺序、不区分大小写、大写字母优先、用于 437（美国英语）字符集。
34 | 字典顺序、不区分大小写、不区分重音、用于 437（美国英语）字符集。
40 | 二进制顺序、用于 850（多语言）字符集。
41 | 字典顺序、区分大小写、用于 850（多语言）字符集。
42 | 字典顺序、不区分大小写、用于 850（多语言）字符集。
43 | 字典顺序、不区分大小写、大写字母优先、用于 850（多语言）字符集。
44 | 字典顺序、不区分大小写、不区分重音、用于 850（多语言）字符集。
49 | 与 1.x 版不区分大小写数据库严格兼容、用于 850（多语言）字符集。
50 | 二进制顺序、用于 1252 字符集。
51 | 字典顺序、区分大小写、用于 1252 字符集。
52 | 字典顺序、区分大小写、用于 1252 字符集。
53 | 字典顺序、不区分大小写、大写字母优先、用于 1252 字符集。
54 | 字典顺序、区分大小写、区分重音、用于 1252 字符集。
55 | 可选字典顺序、区分大小写、用于 850（多语言）字符集。
56 | 可选字典顺序、不区分大小写、大写字母优先、用于 850（多语言）字符集。
57 | 可选字典顺序、不区分大小写、不区分重音、用于 850（多语言）字符集。
58 | 斯堪的纳维亚文字典顺序、不区分大小写、大写字母优先、用于 850（多语言）字符集。
59 | 斯堪的纳维亚文字典顺序、区分大小写、用于 850（多语言）字符集。
60 | 斯堪的纳维亚文字典顺序、不区分大小写、用于 850（多语言）字符集。
61 | 可选字典顺序、不区分大小写、用于 850（多语言）字符集。
71 | 拉丁文 1、区分大小写、用于 1252 字符集。
72 | 拉丁文 1、不区分大小写、用于 1252 字符集。
73 | 丹麦/挪威文、区分大小写排序次序、用于代码页 1252。
74 | 芬兰/瑞典文、区分大小写排序次序、用于代码页 1252。
75 | 冰岛文、区分大小写排序次序、用于代码页 1252。
80 | 二进制顺序、用于 1250（中欧）字符集。
81 | 字典顺序、区分大小写、用于 1250（中欧）字符集。
82 | 字典顺序、不区分大小写、用于 1250（中欧）字符集。
83 | 捷克文字典顺序、区分大小写、用于 1250（中欧）字符集。
84 | 捷克文字典顺序、不区分大小写、用于 1250（中欧）字符集。
85 | 匈牙利文字典顺序、区分大小写、用于 1250（中欧）字符集。
86 | 匈牙利文字典顺序、不区分大小写、用于 1250（中欧）字符集。
87 | 波兰文字典顺序、区分大小写、用于 1250（中欧）字符集。
88 | 波兰文字典顺序、不区分大小写、用于 1250（中欧）字符集。
89 | 罗马尼亚字典顺序、区分大小写、用于 1250（中欧语）字符集。
90 | 罗马尼亚文字典顺序、不区分大小写、用于 1250（中欧）字符集。
91 | 克罗地亚文字典顺序、区分大小写、用于 1250（中欧）字符集。
92 | 克罗地亚文字典顺序、不区分大小写、用于 1250（中欧）字符集。
93 | 斯洛伐克文字典顺序、区分大小写、用于 1250（中欧）字符集。
94 | 斯洛伐克文字典顺序、不区分大小写、用于 1250（中欧）字符集。
95 | 斯洛文尼亚文字典顺序、区分大小写、用于 1250（中欧）字符集。
96 | 斯洛文尼亚文字典顺序、不区分大小写、用于 1250（中欧）字符集。
97 | Windows 波兰文、区分大小写排序次序、用于代码页 1250。
98 | Windows 波兰文、不区分大小写排序次序、用于代码页 1250。
104 | 二进制顺序、用于 1251（西里尔字母）字符集。
105 | 字典顺序、区分大小写、用于 1251（西里尔字母）字符集。
106 | 字典顺序、不区分大小写、用于 1251（西里尔字母）字符集。
107 | 乌克兰文字典顺序、区分大小写、用于 1251（西里尔字母）字符集。
108 | 乌克兰文字典顺序、不区分大小写、用于 1251（西里尔字母）字符集。
112 | 二进制顺序、用于 1253（希腊文）字符集。
113 | 字典顺序、区分大小写、用于 1253（希腊文）字符集。
114 | 字典顺序、不区分大小写、用于 1253（希腊文）字符集。
120 | 混合字典顺序、用于 1253（希腊文）字符集。
121 | 字典顺序、区分大小写、区分重音、用于 1253（希腊文）字符集。
124 | 字典顺序、不区分大小写、不区分重音、用于 1253（希腊文）字符集。
128 | 二进制顺序、用于 1254（土耳其文）字符集。
129 | 字典顺序、区分大小写、用于 1254（土耳其文）字符集。
130 | 字典顺序、不区分大小写、用于 1254（土耳其文）字符集。
136 | 二进制顺序、用于 1255（希伯来文）字符集。
137 | 字典顺序、区分大小写、用于 1255（希伯来文）字符集。
138 | 字典顺序、不区分大小写、用于 1255（希伯来文）字符集。
144 | 二进制顺序、用于 1256（阿拉伯文）字符集。
145 | 字典顺序、区分大小写、用于 1256（阿拉伯文）字符集。
146 | 字典顺序、不区分大小写、用于 1256（阿拉伯文）字符集。
152 | 二进制顺序、用于 1257（波罗的文）字符集。
153 | 字典顺序、区分大小写、用于 1257（波罗的文）字符集。
154 | 字典顺序、不区分大小写、用于 1257（波罗的文）字符集。
155 | 爱沙尼亚文字典顺序、区分大小写、用于 1257（波罗的文）字符集。
156 | 爱沙尼亚文字典顺序、不区分大小写、用于 1257（波罗的文）字符集。
157 | 拉脱维亚文字典顺序、区分大小写、用于 1257（波罗的文）字符集。
158 | 拉脱维亚文字典顺序、不区分大小写、用于 1257（波罗的文）字符集。
159 | 立陶宛文字典顺序、区分大小写、用于 1257（波罗的文）字符集。
160 | 立陶宛文字典顺序、不区分大小写、用于 1257（波罗的文）字符集。
183 | 丹麦/挪威文字典顺序、不区分大小写、大写字母优先、用于 1252 字符集。
184 | 瑞典/芬兰文（标准）字典顺序、不区分大小写、大写字母优先、用于 1252 字符集。
185 | 瑞典/芬兰文（电话簿）字典顺序、不区分大小写、大写字母优先、用于 1252 字符集。
186 | 冰岛文字典顺序、不区分大小写、大写字母优先、用于 1252 字符集。
192 | 二进制顺序、用于 932（日文）字符集。
193 | 字典顺序、不区分大小写、用于 932（日文）字符集。
194 | 二进制顺序、用于 949（韩文）字符集。
195 | 字典顺序、不区分大小写、用于 949（韩文）字符集。
196 | 二进制顺序、用于 950（繁体中文）字符集。
197 | 字典顺序、不区分大小写、用于 950（繁体中文）字符集。
198 | 二进制顺序、用于 936（简体中文）字符集。
199 | 字典顺序、不区分大小写、用于 936（简体中文）字符集。
200 | 字典顺序、区分大小写、用于 932（日文）字符集。
201 | 字典顺序、区分大小写、用于 949（韩文）字符集。
202 | 字典顺序、区分大小写、用于 950（繁体中文）字符集。
203 | 字典顺序、区分大小写、用于 936（简体中文）字符集。
204 | 二进制顺序、用于 874（泰文）字符集。
205 | 字典顺序、不区分大小写、用于 874（泰文）字符集。
206 | 字典顺序、区分大小写、用于 874（泰文）字符集。

请参见

SQL 排序规则示例

选择 SQL 排序规则

指定排序规则

SQL 排序规则


设置客户端代码页

客户端使用的代码页取决于操作系统的设置。

在 Windows NT、Windows 2000 或 Windows 98 操作系统中设置客户端代码页

Windows


升级字符集、排序次序和排序规则

Microsoft® SQL Server™ 2000 支持几种不同的方法来指定排序规则。不需要再分别指定字符型数据的代码页和排序次序以及 Unicode 数据的排序规则。在升级时，可以指定 SQL 排序规则与 SQL Server 的现有实例兼容。

因为 Microsoft SQL Server 实例的默认排序规则在安装过程中定义，所以熟悉以下情况中的 SQL Server 2000 排序规则设置很重要：

  • 应用程序代码在某些方面依赖于先前的 SQL Server 排序规则的行为。

  • 将在现有 SQL Server 6.5 或 SQL Server 7.0 安装中使用复制功能。

  • 必须存储反映多种语言的字符型数据。

请参见

用于国际支持的排序规则选项

排序规则

选择排序规则

指定 SQL Server 实例的默认排序规则


安装之后更改排序规则设置

排序规则设置（包括字符集、排序次序和其它针对区域设置的设置）是所有 Microsoft® SQL Server™ 2000 数据库结构的基础。若要更改其中的一个或多个设置，必须重建 master 和用户数据库。

请参见

选择 SQL 排序规则

排序规则

如何重建 master 数据库（重建 Master 实用工具）


升级到 SQL Server 2000：概述

从 Microsoft® SQL Server™ 7.0 版升级到 Microsoft SQL Server 2000 是 SQL Server 安装程序在初始"安装选择"屏幕上提供的基本选项之一。当选择选项"升级、删除或向 SQL Server 现有安装添加组件"时，安装程序检测当前安装并为选定的升级初始化安装程序屏幕的正确顺序。升级的种类包括：

  • 从 SQL Server 7.0 升级到完整的 SQL Server 2000 安装（在 SQL Server 7.0 上安装）。

  • 将组件添加到 SQL Server 2000 安装。

  • 升级 SQL Server 2000 现有安装的功能集（版本和组件升级）。

  • 使用 SQL Server 升级向导从 SQL Server 6.5 版升级到 SQL Server 2000。

  • 使用复制数据库向导从 SQL Server 7.0 数据库联机升级到 SQL Server 2000 数据库格式。

在从 SQL Server 7.0 升级的过程中，必须为每个升级和更新的注册表安装外部包（如 Microsoft 管理控制台和 Microsoft 分布式事务处理协调器）。master 数据库和其它系统数据库以各种方法升级，涉及在服务器上运行一系列带特定选项的脚本。如果升级过程失败，则内置的恢复机制将重新启动和继续升级。

请参见

从 SQL Server 7.0 升级到 SQL Server 2000

升级现有的 SQL Server 安装

升级 SQL Server 7.0 数据库（复制数据库向导）

升级到 SQL Server 2000 故障转移群集


升级的硬件和软件要求

除了安装 Microsoft® SQL Server™ 时的硬件和软件要求之外，计算机还必须满足以下要求才能升级。

硬件/软件 | 升级要求
操作系统 | 带有 Service Pack 5 (SP5) 或更高版本的 Microsoft Windows NT® Server 企业版 4.0。 带有 SP5 或更高版本的 Windows NT Server 4.0 版。 带有 SP5 或更高版本的 Windows NT Workstation 4.0。 Internet Explorer 5.0 或更高版本。 Windows 2000。
SQL Server 6,5 | 当在同一台计算机上将 SQL Server 6.5 版升级到 SQL Server 2000 实例时，必须应用 SQL Server 6.5 Service Pack 5 (SP5) 或更高版本。当在不同的计算机上将 SQL Server 6.5 升级到 SQL Server 2000 实例时，必须应用 SQL Server 6.5 Service Pack 3 (SP3) 或更高版本。
SQL Server 7.0 | SQL Server 7.0（任意 Service Pack 版本）。
网络协议 | 命名管道。 SQL Server 6.5、SQL Server 7.0 和 SQL Server 2000 都必须设置为监听默认管道 \\.\pipe\sql\query。即使是磁带备份升级也必须有命名管道。
硬盘空间 | 从 SQL Server 7.0 升级到 SQL Server 2000 时不需要附加的硬盘空间。 但是从 SQL Server 6.5 升级到 SQL Server 2000 时，所需的空间约为 SQL Server 6.5 数据库大小的 1.5 倍。

请参见

SQL Server 2000 的硬件和软件安装要求


从 SQL Server 7.0 升级到 SQL Server 2000

可以用升级到 SQL Server 2000 的版本覆盖 Microsoft® SQL Server™ 7.0 版的安装。如果在运行安装程序时将 SQL Server 7.0 检测为现有的安装，则可以选择升级选项。在此进程中，会对所有 SQL Server 7.0 程序文件进行升级，并保留 SQL Server 7.0 数据库中存储的所有数据。另外，SQL Server 7.0 的 SQL Server 联机丛书仍会保留在计算机上。

说明 当将 SQL Server 7.0 工具升级到 SQL Server 2000 时，不升级 SQL Server 7.0 事件探查器跟踪和已注册的服务器。同样地，与 Microsoft 知识库 2.0 一起安装的信息模型也不自动升级。SQL Server 2000 支持数据转换服务 (DTS) 和开放信息模型 (OIM) 的较新版本的信息模型。有关升级 DTS 信息模型的更多信息，请参见 DTS 信息模型。有关升级 OIM 的更多信息，请参见升级信息模型。

在将版本升级到 SQL Server 2000 的过程中，也可以从 SQL Server 的一个版本升级到另一个版本。有关更多信息，请参见 SQL Server 2000：版本和组件。

注意 在执行该版本升级后，SQL Server 7.0 安装将在计算机上不复存在。还原 SQL Server 7.0 安装的唯一办法是先卸载 SQL Server 2000，并完全重新安装 SQL Server 7.0 文件，然后还原所备份的 SQL Server 7.0 数据库。

将 SQL Server 7.0 安装升级到 SQL Server 2000

SQL 安装程序

SQL 安装程序

升级之后

从 SQL Server 7.0 升级到 SQL Server 2000 后，建议重新填充全文目录并更新统计。这两项操作可能要耗费很长时间，但将增强 SQL Server 2000 的性能。

重新填充全文目录

因为从 SQL Server 7.0 升级到 SQL Server 2000 后格式上的变化，所以升级进程将数据库标记为禁用全文。升级之后必须重新填充目录，但是因为该操作耗费很长时间，所以在安装时不会自动运行。管理员应计划在一个方便的时间重新填充所有的全文目录。有关更多信息，请参见 sp_fulltext_catalog 和 sp_fulltext_database。

更新统计

升级到 SQL Server 2000 后，建议升级所有的 SQL Server 7.0 统计。虽然该升级在大型数据库上可能会耗费很长时间，但在 SQL Server 2000 中使用 SQL Server 7.0 统计可能会导致查询性能降低。

使用 sp_updatestats 存储过程更新 SQL Server 2000 数据库中用户定义表中的统计。有关更多信息，请参见 sp_updatestats。

请参见

全文索引

如何重新填充数据库的所有全文目录（企业管理器）

Transact-SQL 概述

如何访问 SQL Server 7.0 的 SQL Server 联机丛书


复制和升级

升级到 Microsoft® SQL Server™ 2000 时，每次可以升级单位中的一个服务器；但是，当服务器用于复制时，则必须按先是分发服务器、然后是发布服务器、最后是订阅服务器的次序升级。当存在许多发布服务器和订阅服务器时，建议按照此次序逐个升级服务器。因为这样即使服务器正在运行不同版本的 SQL Server，也仍然可以继续复制数据。可以用运行 SQL Server 2000 实例的服务器创建新的发布和订阅，并仍然保留在 SQL Server 6.5 或 SQL Server 7.0 中创建的订阅。

使用事务复制时，可以在升级发布服务器之前升级订阅服务器。如果将即时更新用于快照复制或事务复制，则在"升级和即时更新"下的本主题中有其它的升级建议。

可以将运行 SQL Server 6.5 或 SQL Server 7.0 的复制服务器升级到运行 SQL Server 2000。如果服务器运行的是 SQL Server 6.5，则在升级到 SQL Server 2000 之前不必先升级到 SQL Server 7.0。

重要 当将为复制配置的服务器升级到 SQL Server 2000 时，必须将数据库兼容级别设置为 70（7.0 版兼容）或更高版本。如果有在 65（6.5版）或更早的兼容级别上运行的服务器，则在升级过程中暂时将它们更改为 70 或更高版本。

在升级到 SQL Server 2000 的过程中，如果发布服务器或订阅服务器在 65 或更早的兼容级别上运行，则会产生 15048 号错误，指出只有 SQL Server 7.0 版或 SQL Server 2000 支持该操作。

有关设置向后兼容级别的更多信息，请参见 SQL Server 2000 与 SQL Server 6.5 版。

如果在故障转移群集上升级复制，则在升级前必须对以前的安装取消群集。对以前的安装取消群集意味着必须删除所有的发布、删除复制并在升级到 SQL Server 2000 后重新配置复制。将 SQL Server 2000 升级到以后发行的版本时并不要求这样。

升级和即时更新

如果将即时更新用于快照复制或事务复制，更改 SQL Server 2000 中的该功能将影响升级的方式。现在即时更新项目中的行使用 uniqueidentifier 列来标识版本，然而 SQL Server 7.0 中使用 timestamp 列。另外，为即时更新生成的触发器已发生更改，并且触发器生成代码已修改为可接受排队更新。由于这些更改，需要附加的升级步骤。

如果使用即时更新：

  • 在复制数据之前升级发布服务器和订阅服务器。

  • 除去发布和对发布的所有订阅。

  • 使用 ALTER TABLE DROP COLUMN Transact-SQL 语句从发布服务器上的表和允许订阅服务器更新的订阅服务器上的表中除去 timestamp 列。

  • 重新创建发布和订阅。系统向已发布的表添加一个 uniqueidentifier 列。该列用于行版本控制（从订阅服务器接收更新时检测冲突）。

虽然建议先将发布服务器和订阅服务器升级，然后再除去并重新创建现有发布，但发布服务器和订阅服务器可以按任何次序升级。如果需要重新初始化订阅服务器或添加新的订阅服务器，则需要除去并重新创建发布。

升级和文件传输协议

如果使用文件传输协议 (FTP)，则应遵循建议的升级路径，这样可以确保订阅服务器能够从分发服务器获取必要的 FTP 信息。

SQL Server 2000 将 FTP 参数存储为发布属性，所以无需在订阅服务器上为每个订阅管理这些参数。升级到 SQL Server 2000 时，"发布属性"对话框中的"FTP"选项为关闭状态，所以需要为每个使用 FTP 的发布打开该属性，然后重新设置 FTP 参数。

使用运行 SQL Server 2000 实例的分发服务器时，SQL Server 7.0 订阅服务器将继续使用存储在订阅属性中的 FTP 参数查找 FTP 文件。但是，运行 SQL Server 2000 实例的订阅服务器将无法从运行 SQL Server 早期版本的分发服务器获取 FTP 信息。

除非需要重新初始化或连接到 FTP 站点，否则使用合并复制或事务复制的现有订阅将不会受到该更改的影响。需要在快照复制发生前指定 FTP 参数，否则复制代理程序将无法查找到快照文件。

有关更改 FTP 参数的更多信息，请参见使用 TCP/IP 和 FTP 通过 Internet 发布数据和如何指定 FTP 信息（企业管理器）。

疑难解答和复制升级

如果升级复制服务器时发生错误，则们可能与数据库脱机或不可用或脚本失败有关。有关如何解决升级复制时所发生错误的更多信息，请参见复制相关帮助。

当复制正在升级时，建议停止复制服务器上的所有数据修改。当从 SQL Server 6.5 升级时，必须在升级前运行日志读取器代理和分发代理，以确保没有复制命令等待传递给订阅服务器。

因为每次对一台运行 Microsoft® SQL Server™ 2000 实例的服务器进行升级，可能会面临这样的情况，即复制拓扑中的服务器运行不同版本的 SQL Server。可以在不同版本的 SQL Server 之间进行复制，但通常仅限于所使用最早版本的功能。

重要 从 SQL Server 6.5 或 7.0 升级到 SQL Server 2000 时，SQL Server 安装程序将运行几个 *.sql 复制脚本。虽然升级进程要用去几分钟时间并且不显示进度提示，但是可以查看位于 SQL Server Install 目录下的 *.out 和 *.err 文件中的错误信息。

请参见

使用 TCP/IP 和 FTP 通过 Internet 发布数据

在不同版本的 SQL Server 之间进行复制

复制数据考虑事项

可更新的订阅


升级 SQL Server 7.0 数据库（复制数据库向导）

作为对常规升级过程的增强，可以执行数据库和相关元数据的联机升级。使用复制数据库向导可以从 Microsoft® SQL Server™ 7.0 向 Microsoft SQL Server 2000 实例移动或复制数据库，在此进程中无须关闭任何服务器。

联机数据库升级的优点有：

  • 服务器在升级过程中仍正常工作。

  • 可以自定义选择要升级的数据库，而保留原有的 (SQL Server 7.0) 服务器仍然可用的其它数据库。

  • 可以在升级过程中包括相关元数据。例如，可以包括与用户数据库相关联的登录信息、作业和用户特定对象。

  • 该进程可在方便的时候运行。

数据库复制向导基于分离和附加功能，该功能允许将用户数据库从源服务器移动或复制到目的服务器。数据转换服务 (DTS) 包执行实际的移动或复制操作。可以调度该包在指定的时间运行或必要时重新运行。

SQL Server 7.0 数据库升级选项

数据库管理员可以将一个或多个数据库从 SQL Server 7.0 实例移动或复制到您的本地计算机上的 SQL Server 2000 默认实例，或者到远程计算机上的默认或命名实例。该升级功能不支持 SQL Server 6.5 数据库。

本地计算机
  • SQL Server 7.0 数据库可升级到本地计算机上的 SQL Server 2000 命名实例。
远程计算机
  • SQL Server 7.0 数据库可升级到远程计算机上的 SQL Server 2000 默认实例。

  • SQL Server 7.0 数据库可升级到远程计算机上的 SQL Server 2000 命名实例。

说明 一台计算机一次只能有一个 SQL Server 活动默认实例；这个实例或者是 SQL Server 7.0 的默认实例，或者是 SQL Server 2000 的默认实例。SQL Server 6.5 也是默认实例。有关更多信息，请参见处理 SQL Server 的实例和版本。

例外情况

以下情况不能使用复制数据库向导：

  • 数据库在源服务器和目的服务器上的名称相同时，不能进行移动或复制。在"数据库选择"屏幕上，该数据库将标注为"已经存在"。

  • 对于涉及复制的数据库，需要进行常规的数据库升级。
复制数据库向导安全措施

在开始数据库移动或复制操作时，必须由一个管理员独占所有文件以防止在此过程中修改文件集。复制数据库文件需要两个连接：在两个 SQL Server 安装上都要有 sysadmin 特权，在服务器/网络上要有管理员特权。

若要防止任何数据损坏的可能，在此操作期间，SQL Server 7.0 数据库必须处于只读情况下而且不能重命名。源服务器和目的服务器之间的任何名称冲突必须在升级数据库之前手动解决。这样就不会改写目的服务器上的任何信息。

如果在一次操作中移动或复制多个数据库，则每个数据库实际上是每次移动一个，即一次分离一个数据库，完成文件复制之后再重新附加。为了避免出现任何问题，DTS 包将消息写到错误日志中，表明数据库即将从源服务器分离。同时，脚本就绪，准备将数据库附加到目的服务器。数据库成功附加到目的服务器之后，日志文件中又写入了一个条目，表明已成功完成操作。

当升级到群集的目的服务器时，复制数据库向导将确认选择了群集目的服务器上的唯一共享驱动器。源服务器也可以是群集服务器。

说明 也可以独立于该升级进程，使用复制数据库向导将用户数据库从 SQL Server 2000 的一个实例移动或复制到 SQL Server 2000 的另一个实例。有关更多信息，请参见使用复制数据库向导。

使用复制数据库向导升级联机数据库

向导

向导

请参见

复制数据库向导帮助


升级 SQL Server 6.5 数据库（升级向导）

使用 SQL Server 升级向导可以将数据从 Microsoft® SQL Server™ 6.5 版转换为 SQL Server 2000 的格式。该向导升级所有数据库，传输所有目录数据、对象和用户数据。同时它还传输复制设置、SQL Executive 设置和大多数 SQL Server 6.5 的配置选项。一定要按照准备从 SQL Server 6.5 升级中注释的那样，检查该升级的所有方面。

说明 若要运行 SQL Server 升级向导，计算机上必须已经安装有一个 Microsoft SQL Server 2000 的默认实例。

SQL Server 升级向导并不支持多个 SQL Server 6.5 安装中数据库的合并。如果一定要升级多个服务器上的 SQL Server 6.5 数据库，请首先将所有 SQL Server 6.5 数据库合并到同一台服务器上，然后运行升级向导，对合并后的服务器进行升级。

SQL Server 升级向导不会从计算机上删除 SQL Server 6.5。如果使用磁带备份进行升级，可以选择删除 SQL Server 6.5 设备以节省磁盘空间。

升级过程完成后，会存在两个单独的 SQL Server 安装，它们各自包含两个单独的相同数据集。SQL Server 6.5 与 SQL Server 2000 的安装由此相互独立。

如果在一台计算机上进行升级，则需要额外的磁盘空间。有关更多信息，请参见估计升级所需的磁盘空间。。也可以从一台计算机升级到另一台计算机。有关更多信息，请参见使用一台或两台计算机进行升级（登录屏幕）。

说明 可以无限期的将 SQL Server 6.5 安装保留在计算机上。除了在同一台计算机上保留 SQL Server 6.5 和 SQL Server 2000 默认实例安装之外，也可在同一台计算机上安装 SQL Server 2000 的多个命名实例。有关更多信息，请参见处理 SQL Server 的实例和版本。

使用直接管道执行版本升级

SQL 安装程序

SQL 安装程序

使用磁带驱动器执行版本升级

SQL 安装程序


准备从 SQL Server 6.5 升级

使用 SQL Server 升级向导从 Microsoft® SQL Server™ 6.5 版升级到 Microsoft SQL Server 2000 之前，请遵循以下检查清单：

  • 备份 SQL Server 6.5 数据库文件（所有 .dat 文件，包括 master），以便在必要时可以完全还原这些文件。

  • 在 SQL Server 6.5 数据库上运行适当的数据库控制台命令 (DBCC)，以确保这些数据库处于一致状态。

  • 估计所需的磁盘空间。除了 Microsoft SQL Server 2000 所占用的硬盘空间外，还必须有大约是 SQL Server 6.5 数据库大小的 1.5 倍的硬盘空间。

  • 在 SQL Server 6.5 安装中将 tempdb 设置为至少 10 MB，建议设为 25 MB。

  • 确保 master 数据库中有至少 3 MB 的可用空间。

  • 确保所有数据库用户在 master 数据库中都有登录信息。

    这对还原数据库很重要，因为系统登录信息驻留在 master 数据库中。

  • 确保已经在 SQL Server 2000 上定义了 @@SERVERNAME。如果 @@SERVERNAME 为 NULL，就可以使用 sp_addserver 系统存储过程。例如，如果计算机被命名为"production"，那么命令将是 sp_addserver 'production1',local。所做的改动直到 MSSQLServer 服务重新启动后才生效。

    说明 因为 SQL Server 6.5 不能识别计算机名称中的连字符 (-)，所以用下划线 (_) 代替连字符。

  • 禁用任何启动存储过程。

    SQL Server 升级向导在升级进程中启动及停止 SQL Server 6.5 服务器。启动时处理的存储过程会导致升级进程停止响应。

  • 确保同时升级所有具有跨数据库相关性的数据库。

    例如，若要升级三个数据库：database1、database2 和 database4，并且对于默认为 database3（不在要升级的数据库之列）的 USER1，在 SQL Server 6.5 的 master..sysdatabases 中有登录信息。数据库没有升级，也就不存在于 SQL Server 2000 中，所以 SQL Server 升级向导并不创建登录信息。如果 USER1 被列为任何升级数据库中的对象所有者，那么将因为不存在 USER1 的登录信息而无法创建这些对象。

  • 如果要执行双机升级，请给 SQL Server 6.5 和 SQL Server 2000 中的 MSSQLServer 服务指派域用户名和密码，而不要使用本地系统帐户或本地用户帐户。域用户帐户应同时属于涉及升级的两台计算机的 Administrators 组。（对于单机升级，本地系统帐户就足够了。）

  • 停止复制，并确保日志为空。

  • 退出所有应用程序，包括依赖于 SQL Server 的所有服务。

如果将 SQL Server 6.5 数据库复制到新的计算机上来执行升级，可能需要用以下方法更新新的 SQL Server 6.5 master 数据库：

  • 在 SQL Server 6.5 master 数据库中，将引用从以前的服务器名更改为当前服务器名。

  • 更新 SQL Server 6.5 master 数据库中的设备文件位置。

  • 确保所有的用户都有相应的登录信息。

更改 SQL Server 6.5 中 tempdb 的大小

Transact-SQL

Transact-SQL

更改为 SQL Server 6.5 master 数据库中当前服务器名

Transact-SQL

Transact-SQL

更新 SQL Server 6.5 master 数据库中的设备文件位置

Transact-SQL

Transact-SQL

请参见

估计升级所需的磁盘空间

使用一台或两台计算机进行升级（登录屏幕）

如何从 SQL Server 6.5 升级


估计升级所需的磁盘空间

执行从 Microsoft® SQL Server™ 6.5 版到 SQL Server 2000 的升级之前，必须确保有可用磁盘空间。若想要执行单机或双机升级，这一点就很重要。

SQL Server 升级向导估计从 SQL Server 6.5 升级到 SQL Server 2000 所需的磁盘空间大小。该向导检查当前 SQL Server 6.5 安装并估计 SQL Server 6.5 的数据将在 SQL Server 2000 中占用的磁盘空间量。

您可以估计：

  • SQL Server 2000 数据库的大小。

  • SQL Server 2000 日志的大小。

  • tempdb 所需的磁盘空间数量。

说明 SQL Server 升级向导对所需磁盘空间进行估计，但不能准确地给出需求数量。

估计升级所需的磁盘空间

Windows


数据和对象传输

在"数据和对象传输"屏幕中可以选择升级选项。

从 6.5 版 Server 导出/导入

对象和数据复选框表明 SQL Server 升级向导从选定的 Microsoft® SQL Server™ 6.5 版数据库导出目录数据、对象和用户数据，然后将它们导入新创建的 SQL Server 2000 数据库中。

数据传输方法

可以使用以下两种数据传输方法中的任何一种执行升级：

  • 命名管道（同时导入/导出）

    直接管道使 SQL Server 升级向导得以将内存中的数据从 Microsoft SQL Server 6.5 版传输出来。这一数据传输方法最可靠，而且性能也最佳。然而，执行单机升级时，在版本升级进程完成之前，不能重新使用 SQL Server 6.5 设备所占用的磁盘空间，所以只有在有可用磁盘空间时才能使用该选项。

  • 磁带（需要安装 Microsoft Windows NT® 磁带驱动程序）®

    SQL Server 升级向导将选定要升级的所有 SQL Server 6.5 数据库备份到磁带上。然后 SQL Server 升级向导在创建新数据文件之前，会选择删除所有 SQL Server 6.5 设备，从而释放磁盘空间。

    重要 SQL Server 升级向导会删除所有 SQL Server 6.5 设备，而不仅仅是那些要升级的 SQL Server 6.5 设备。如果选择删除 SQL Server 6.5 设备，则应升级所有数据库。

    只有想在单机上升级、但硬盘上没有足够空间安装 SQL Server 2000 同时又保留 SQL Server 6.5、而且要执行版本升级的情况下，才应使用磁带备份选项。

    说明 SQL Server 升级向导使用命名管道，即使在执行磁带备份升级时也是如此。SQL Server 6.5 和 SQL Server 2000 必须设置为监听默认命名管道：\\.\pipe\sql\query。

验证

使用 SQL Server 升级向导传输对象和数据非常可靠。如果因对象错误或与 Microsoft SQL Server 的兼容性问题而无法导入对象，这些对象将记入 SQL Server 升级向导的输出日志。

SQL Server 升级向导还提供如下可选的验证方法：

  • 验证成功的对象数据传输

    SQL Server 升级向导在升级进程之前检查 SQL Server 6.5 数据库，并在升级后检查 SQL Server 2000 数据库。向导对这两次检查都备有所有对象的列表，其中包括架构和存储过程以及每个表中的行数。然后向导比较两个列表并报告二者之间的任何差异。

  • 彻底的数据完整性验证

    SQL Server 升级向导在升级前后对每个表的每一列进行校验，以验证数据值是否没有任何更改。

    说明 对于对象中有意的差别，SQL Server 升级向导并不将其报告为错误。如果有些对象（通常是存储过程）因其中存在的错误或与 SQL Server 2000 之间的兼容性问题而无法导入，则向导要进行两次报告：一次是在 SQL 脚本中，该脚本显示对象源代码和 SQL Server 2000 尝试创建对象时返回的错误信息，第二次是在验证进程的输出中。


使用直接管道或磁带驱动器进行升级的次序

SQL Server 升级向导使用指定的选项执行版本升级。整个版本升级进程中，SQL Server 6.5 数据库所使用的 Microsoft® SQL Server™ 6.5 版服务器和数据保持原样。同时会对 SQL Server 6.5 目录数据、对象和数据库进行转换，使它们与 SQL Server 2000 兼容。版本升级完成后，SQL Server 2000 即成为工作的系统。

对直接管道升级和磁带驱动器升级而言，升级次序基本相同。差别之一是数据导出及导入的方式。使用磁带驱动器时，数据导出到磁带驱动器发生在关闭 SQL Server 6.5 之后、启动 SQL Server 2000 之前。这些数据稍后将从磁带驱动器导入 SQL Server 2000 中。而在使用直接管道时，导入和导出并为一步，同时进行。

以下列表显示 SQL Server 升级向导执行从 SQL Server 6.5 到 SQL Server 2000 的升级的次序。对直接管道方法和磁带驱动器方法的差别也予以说明。

  • 启动 SQL Server 6.5

  • 更新 SQL Server 6.5 的 ODBC 和 SQL-DMO 组件

  • 检查 SQL Server 6.5 数据库

  • 导出复制设置

  • 从 master 数据库导出服务器配置设置

  • 导出登录信息

  • 导出数据库所有者

  • 从 msdb 数据库导出 SQL Executive 对象和设置

  • 导出所有选定数据库的数据库对象

  • 关闭 SQL Server 6.5
    • 只适用于磁带驱动器：将数据导出到磁带

    • 只适用于磁带驱动器：备份然后删除 SQL Server 6.5 设备
  • 启动 SQL Server 2000

  • 创建数据库

  • 将 SQL Executive 对象和设置修改为 SQL Server 2000 格式

  • 导入登录信息

  • 导入数据库对象
    • 只适用于磁带驱动器：将数据从磁带导入 SQL Server 2000

    • 只适用于直接管道：从 SQL Server 6.5 导出数据，同时将这些数据导入 SQL Server 2000
  • 将修改过的 SQL Executive 对象和设置导入 SQL Server 2000

  • 导入复制设置

  • 检查 SQL Server 2000 数据库

  • 验证升级是否成功

  • 设置 SQL Server 2000 中的数据库选项

  • 将服务器和数据库标记为已移动

  • 除去临时 tempdb 文件


使用一台或两台计算机进行升级（登录屏幕）

升级进程可在一台计算机上进行，也可在两台计算机之间进行，这取决于 Microsoft® SQL Server™ 6.5 版和 SQL Server 2000 的安装位置。SQL Server 升级向导将两台服务器标识为导出服务器和导入服务器。

  • 如果进行单机升级，请保留导入和导出服务器的默认值。

  • 如果进行双机升级，请选择 SQL Server 6.5 服务器所在的计算机的名称作为导出服务器名称。若要从一台计算机将 SQL Server 升级到另外一台计算机，这两台计算机必须在同一个网络域中。

重要 当升级用于复制的服务器时，仅支持单机升级。复制服务器不支持双机升级。

导出服务器 (6.5)

导出服务器 (6.5) 是 SQL Server 6.5 服务器的名称。此名称默认为运行 SQL Server 升级向导的计算机的名称，但如果 SQL Server 6.5 服务器在另外一台计算机上，则可以更改此名称。

  • 服务器名称

    服务器名称是 SQL Server 6.5 服务器的名称。此名称默认为运行 SQL Server 升级向导的计算机的名称，但如果 SQL Server 6.5 服务器在另外一台计算机上，则可以更改此名称。

  • 管理员密码 ('sa')

    输入 SQL Server 6,5 服务器系统管理员 (sa) 密码。

  • 可选启动参数

    输入在 SQL Server 升级向导启动 SQL Server 6.5 服务器时要使用的跟踪标记或其它启动参数。

导入服务器

导入服务器是 SQL Server 2000 服务器的名称。此名称始终是运行 SQL Server 升级向导的计算机的名称。

  • 服务器名称

    服务器名称是 SQL Server 2000 服务器计算机的名称。此名称始终是运行 SQL Server 升级向导的计算机的名称。

  • 管理员密码 ('sa')

    输入 SQL Server 2000 服务器系统管理员 (sa) 密码。除非在安装 SQL Server 2000 时作了更改，否则默认的 sa 密码为空白。

  • 可选启动参数

    输入在 SQL Server 升级向导启动 SQL Server 2000 服务器时要使用的跟踪标记或其它启动参数。


选择脚本代码页

SQL Server 升级向导要求选择用于创建升级脚本的脚本代码页。当升级向导中出现"代码页选择"屏幕时，大多数用户可以接受记录于 master 数据库中的默认代码页。

在一些情况下，Microsoft® SQL Server™ 6.5 安装实际使用的代码页与记录在 master 数据库中的代码页不同。如果知道实际代码页与所记录的代码页不同，请在"代码页选择"屏幕的列表中选择实际使用的代码页。

注意 如果选择默认代码页之外的脚本代码页，则不要升级复制设置。如果复制涉及到服务器，请在升级完成后重新配置复制设置。

SQL Server 2000 中对排序规则设置的增强不能直接应用于 SQL Server 6.5 升级的代码页选择。有关排序规则增强的更多信息，请参见排序规则。


选择要升级的数据库

运行 SQL Server 升级向导时，可以选择升级 Microsoft® SQL Server™ 6.5 版的部分或全部数据库。其中系统数据库 master、msdb 和 publication 以及示例数据库 pubs 和 Northwind 无法显示选择。但可以在 SQL Server 升级向导的"服务器配置"对话框中选择升级数据库 master、msdb 和 publication（默认选项）。

说明 如果在已经升级了数据库后再次运行 SQL Server 升级向导，则先前更新的那些数据库就默认地纳入排除列表。如果想对一个数据库再次升级，在 SQL Server 2000 中除去该数据库并把它移至向导中的升级列表。


数据库配置

传输数据之前，如有必要，SQL Server 升级向导会创建足够大的数据库和日志文件来容纳升级的数据库数据。在"数据库创建"屏幕上有几个用于创建 Microsoft® SQL Server™ 2000 数据库和日志文件的选项。

使用默认数据库配置

SQL Server 升级向导估计容纳每个所选数据库传输的对象和数据所需的空间大小，并按照估计的大小创建相应的数据库文件。除装载的数据所需空间之外，向导不再预留可用空间。默认情况下，数据库的数据文件存放在 SQL Server 6.5 中该数据库使用的第一个设备位置。

SQL Server 升级向导还根据 SQL Server 6.5 日志的大小为每个数据库创建一个日志文件。默认情况下，该日志文件存放在 SQL Server 6.5 中日志空间所用的第一个设备位置。

可以在 SQL Server 升级向导中查看和编辑默认的数据库配置。可以修改每个数据库和日志文件的：

  • 名称和文件路径。

  • 文件的初始大小。

  • 自动增长的增量。

如果在 SQL Server 6.5 版数据库中使用多个设备，那么将在同一位置创建多个数据库文件。但调整第一个数据库文件的大小以容纳多数数据，其它文件则尽可能地小。若要删除这些文件，必须在创建它们之前完成删除。所有文件都设置为在需要更多空间时自动增长。

使用自定义数据库配置

可以采用两种方法指定自定义配置：

  • 使用在 SQL Server 2000 中创建的数据库和日志。

    SQL Server 升级向导不会创建任何用户数据库。在启动 SQL Server 升级向导之前，应在 SQL Server 2000 中创建必需的数据库和日志。此选项只在必要时使用。

  • 使用自己提供的 SQL 脚本文件。

    SQL Server 升级向导使用您提供的 SQL 脚本文件创建必要的用户数据库和日志。只有熟悉 SQL Server 2000 中的新 CREATE DATABASE 语句时，才可使用此选项。

如果要创建用户数据库或 SQL 脚本文件，则 SQL Server 2000 数据库必须与 SQL Server 6.5 中的数据库同名。同时，请记住在 SQL Server 2000 中，数据或许要比在 SQL Server 6.5 中占用更多的磁盘空间。SQL Server 升级向导将对这种需求增长作出估计。如果需要，可以查看建议的 SQL Server 2000 数据文件的布局以便得到估计的 SQL Server 2000 数据库的初始大小，并编辑默认配置。有关更多信息，请参见建议的数据库布局。

建议每个数据库都保留使用自动增长功能。还可为每个数据库设置向后兼容级别。

编辑默认数据库配置

向导

向导

请参见

CREATE DATABASE

估计升级所需的磁盘空间


建议的数据库布局

"建议的数据库布局"对话框列出 Microsoft® SQL Server™ 升级向导将要创建的数据库、文件组和数据文件。可以从"文件"菜单中创建或删除文件组和数据文件。双击一个数据文件以编辑文件名、初始大小或文件增长详细信息。

对象详细信息

单击建议数据库布局中的文件组或数据文件以查看其详细信息。单击建议数据库布局中的数据库以查看其摘要信息。

驱动器摘要

驱动器摘要列出所有本地固定磁盘驱动器，并列出每个驱动器中现有 SQL Server 6.5 版数据文件的大小、建议的 SQL Server 2000 数据文件的大小和可用空间。在"选项"菜单上选择"可用空间包括 SQL Server 6.5 文件"以查看若删除 SQL Server 6.5 数据文件后将剩余的可用空间。如果使用磁带升级并且删除了 SQL Server 6.5 设备，该选项将显示可用磁盘空间。

请参见

数据库配置


磁带升级传输选项

执行磁带备份时，必须选择磁带驱动器并选择 SQL Server 升级向导处理备份操作和删除 Microsoft® SQL Server™ 6.5 版数据库中的对象的方式。

数据传输设备

创建 SQL Server 2000 数据库之前，SQL Server 升级向导将所有正在升级的数据传输到此磁带驱动器中。

备份 SQL Server 6.5 设备

也可以选择备份 SQL Server 6.5 设备。这与 SQL Server 升级向导为完成升级而执行的将数据传输到磁带的操作是分开的。备份设备有两个选项：

  • 提示手动备份设备

    导出数据之前，SQL Server 升级向导暂停并提示用户执行备份。SQL Server 升级向导并不会为您执行备份。必须使用象 Microsoft Windows NT® 备份这样的备份实用工具。

  • 自动将设备文件复制到以下位置

    导出数据之前，SQL Server 升级向导将设备文件复制到共享网络目录。

警告 若要将设备备份到磁带上，请先删除磁带备份并插入空白磁带然后再继续操作。SQL Server 升级向导在开始将数据传输到磁带驱动器之前，会格式化驱动器中的磁带。如果没有删除磁带备份，SQL Server 升级向导会将其重写。

删除 SQL Server 6.5 设备

如果决定在创建 SQL Server 2000 数据库之前删除 SQL Server 6.5 设备，可以选择是否在删除设备之前得到提示。如果选择删除设备，即使只是要升级一个数据库，所有 SQL Server 6.5 设备文件都将删除。这将导致 SQL Server 6.5 服务器无法使用，除非还原这些文件。

说明 如果选择不删除设备，则必须保证有足够的磁盘空间同时容纳 SQL Server 6.5 和 SQL Server 2000 数据库。如果有足够的可用磁盘空间，则应选用命名管道升级而非磁带升级。

请参见

如何使用磁带驱动器将 SQL Server 6.5 版升级到 SQL Server 2000（SQL Server 升级向导）


系统配置

在"系统配置"屏幕上可以设置要传输的系统对象、ANSI Nulls 和被引用的标识符的选项。

要传输的系统对象

当 SQL Server 升级向导升级数据库 master 时，可以升级几个配置选项：

  • 服务器配置

    与 Microsoft® SQL Server™ 2000 相关的登录信息和远程登录注册以及服务器配置选项均作为版本升级进程的一部分进行传输。在 SQL Server 2000 中没有用到的 SQL Server 6.5 中的配置选项不进行传输。

  • 复制设置

    只要任何选定的数据库（包括分发数据库）中有项目、订阅和发布，就传输并升级这些项目、订阅和发布。

  • SQL Executive 设置

    由 SQL Executive 调度的所有任务都传输并升级，以使 SQL Server 2000 能在 SQL Server 代理中调度和运行这些任务。

说明 升级复制或 SQL Executive 设置会导致重写当前对 SQL Server 2000 复制或 SQL Server 代理设置所做的修改。

ANSI Nulls

ANSI_NULLS 选项控制数据库的默认为空性以及空值比较。在将 Microsoft SQL Server 6.5 版升级到 SQL Server 2000 时，应将 ANSI_NULLS 选项设置为 ON 或 OFF。

SQL Server 升级向导创建 SQL Server 2000 数据库表时，ANSI_NULLS 选项所确定的数据库默认为空性并不会导致问题。根据各自在 SQL Server 6.5 中的状态，所有列都被显式限定为 NULL 或 NOT NULL。

SQL Server 升级向导创建 SQL Server 2000 数据库对象时，选项 ANSI_NULLS 在空值比较方面显得很重要。若 ANSI_NULLS 设置为 ON，比较运算符 EQUAL (=) 和 NOT EQUAL (<>) 在其某一参数为 NULL 时总是返回值 NULL。若 ANSI_NULLS 设置为 OFF，这些运算符根据两个参数是否均为 NULL 而返回 TRUE 或 FALSE。

在 SQL Server 6.5 中，存储过程和触发器之类的对象中的选项 ANSI_NULLS 都是在查询执行时解析的。而在 SQL Server 2000 中，选项 ANSI_NULLS 是在对象创建时解析的。必须为要升级的数据库中的所有对象选择所需的 ANSI_NULLS 选项设置。然后 SQL Server 升级向导就可以应用该 ANSI_NULLS 设置创建所有数据库对象。

被引用的标识符

说明 在 SQL Server 2000 中，默认情况下使用被引用的标识符，即它们被设置成 ON。这与它们在 SQL Server 7.0 中按默认方式设置为 OFF 有所不同。

QUOTED_IDENTIFIER 设置决定 Microsoft SQL Serve 赋予双引号 (") 何种含义。若 QUOTED_IDENTIFIER 设置为 OFF，则双引号界定字符串，与单引号的意义相同。若 QUOTED_IDENTIFIER 设置为 ON，则双引号界定标识符（例如列名）。如果标识符名称中含有非法字符（包括空格和标点符号），或标识符名称与 Transact-SQL 的保留字冲突，则标识符必须用双引号引起来。无论 QUOTED_IDENTIFIER 设置如何，标识符都可以用方括号界定。

根据 QUOTED_IDENTIFIER 设置为 ON 或 OFF，语句的含义不同，例如：

SELECT "x" FROM T

如果 QUOTED_IDENTIFIER 设置为 ON，"x"解释为列名是 x。如果该选项设置为 OFF，"x"便为常量字符串 x，与字母 x 等价。

如果 QUOTED_IDENTIFIER 设置为 ON 时创建一个存储过程，而前述 SELECT 语句示例是该存储过程的一部分，则"x"总是表示列名是 x。即使 QUOTED_IDENTIFIER 设置后来切换为 OFF，存储过程仍然像该设置为 ON 一样，将"x"解释成列名是 x。

SQL Server 升级向导在 SQL Server 2000 中重新创建数据库对象时，QUOTED_IDENTIFIER 设置决定所有这些对象的行为。如果 SQL Server 6.5 中所有对象创建时 QUOTED_IDENTIFIER 设置都相同，请单击该设置（"开"或"关"）。如果 SQL Server 6.5 版中的对象创建时两种设置都有，或对所用的设置不确定，请单击"混合型"。

如果选择选项"混合型"，则 SQL Server 升级向导首先对所有含有双引号、QUOTED_IDENTIFIER 设置为 ON 的对象进行转换。然后 SQL Server 升级向导转换所有创建时未将 QUOTED_IDENTIFIER 设置为 OFF 的对象。

请参见

如何用直接管道将 SQL Server 6.5 版升级到 SQL Server 2000（SQL Server 升级向导）

如何使用磁带驱动器将 SQL Server 6.5 版升级到 SQL Server 2000（SQL Server 升级向导）


完成 SQL Server 升级向导

用此屏幕查看所作选择的摘要。

单击"在记事本中查看警告和选择"按钮以打开升级脚本的文本版。如果所有的选项都正确，请单击"完成"按钮。


升级脚本解释器

单击"完成"按钮之后，该屏幕将显示升级的进度。

进度指示器

显示关于当前任务及完成进度信息。所显示的信息根据任务的类型而不同。

任务

SQL Server 升级向导在启动时将每个升级任务添加到列表中。

状态

SQL Server 升级向导显示每项任务的状态（正在运行、完成或错误）。

已启动

SQL Server 升级向导显示任务开始的时间和日期。

结束

SQL Server 升级向导显示完成的或终止的任务的结束时间和日期。

暂停任务

临时挂起版本升级进程，直到单击"继续"按钮。

取消任务

取消当前运行的任务而继续运行下一个任务。除非确信在运行后续任务之前无需完成当前任务，否则不要取消任务。

重试任务

重试当前升级任务。如果任务因出现错误而结束并更正了问题，SQL Server 升级向导将重试当前任务。

步骤之间的暂停

可用于交互地参予版本升级进程并跟踪 SQL Server 升级向导的进度。SQL Server 升级向导在版本升级进程的每个步骤之间请求确认。


向后兼容性

向后兼容性问题分为以下几部分：

  • 有关从 Microsoft® SQL Server™ 7.0 版升级到 SQL Server 2000 的相关问题，请参见本章后面的：

    SQL Server 2000 与 SQL Server 7.0 版

  • 有关在 SQL Server 6.5 和 Microsoft SQL Server 2000 之间升级的相关问题，请参见本章后面的：

    SQL Server 2000 与 SQL Server 6.5 版

    如果从 SQL Server 6.5 升级到 SQL Server 2000，则两部分都要查看。


SQL Server 2000 与 SQL Server 7.0 版

Microsoft® SQL Server™ 2000 与 SQL Server 7.0 在大多数方面是兼容的。这部分描述从 SQL Server 7.0 升级到 SQL Server 2000 时的向后兼容性问题：

  • 客户端网络实用工具和命名实例

  • 多服务器作业和命名实例

  • 升级 SQL Server 6.5 客户端软件

  • 身份验证模式

  • 在远程表上所执行操作的 ROWCOUNT 设置

  • 服务器配置选项

  • 恢复模型和数据库选项

  • 保留关键字

  • SQL 事件探查器扩展存储过程

  • SQL 查询分析器中的默认连接选项设置

  • bcp 实用工具

  • 来自早期版本可视化数据库设计工具的数据库关系图

  • 数据转换服务

  • 指定信任连接

  • SQL-DMO 中的扩展对象

  • SQL-SCM

  • English Query 和 SQL Server 7.0 OLAP 服务
客户端网络实用工具和命名实例

当使用来自 SQL Server 7.0 或其早期版本的 SQL Server 客户端连接组件时，在连接到 SQL Server 2000 的命名实例之前，必须使用客户端网络实用工具设置别名。例如，若要在 SQL Server 7.0 客户端上连接 SQL Server 2000 命名实例，必须添加指向 \\computername\pipe\MSSQL$instancename\sql\query 的别名。如果使用别名 computername\instancename，客户端可按 SQL Server 2000 客户端所做的那样，通过指定该别名进行连接。对于 TCP/IP 套接字和 NWLink IPX/SPX Net-Library，则必须使用客户端网络实用工具在客户端定义别名，该客户端指定了端口地址，在该端口地址上可以监听命名实例。

多服务器作业和命名实例

当使用主服务器和目标服务器时，SQL Server 7.0 不能与 SQL Server 2000 命名实例相互操作。若想一起使用 SQL Server 7.0 实例和 SQL Server 2000 实例以进行 MSX/TSX 操作，必须使用 SQL Server 2000 的默认实例而不是其命名实例。

升级 SQL Server 6.5 客户端软件

当在服务器上运行 SQL Server 6.5 版实例时，适用于下列问题：

若想从 SQL Server 6.5 客户端软件升级到 SQL Server 2000 客户端软件，并且有使用默认 Net-Library 的应用程序，则必须使用客户端网络实用工具使命名管道或多协议作为默认 Net-Library，才能进行 Windows 身份验证连接。

身份验证模式

SQL Server 2000 可以在两种安全（身份验证）模式下运行：

  • Windows 身份验证模式（Windows 身份验证）

  • 混合模式（Windows 身份验证和 SQL Server 身份验证）

混合模式允许用户使用 Windows 身份验证或 SQL Server 身份验证进行连接。通过 Microsoft Windows NT® 4.0 或 Windows 2000 用户帐户连接的用户可以在 Windows 身份验证模式或混合模式下使用信任连接（由 Windows NT 4.0 或 Windows 2000 验证的连接）。

提供 SQL Server 身份验证是为了向后兼容。SQL Server 身份验证的一个例子是：创建单个 Microsoft Windows® 2000 组，将所有必要的用户添加到该组中，然后授于这个 Windows 2000 组登录 SQL Server 及访问任何所需数据库的权限。

在远程表上所执行操作的 ROWCOUNT 设置

当将数据库兼容级别设置成 80 时，在 SQL Server 2000 中的远程表上执行的 INSERT 语句不支持 ROWCOUNT。对于这些 INSERT 操作，将忽略 SET ROWCOUNT 选项。

SQL Server 7.0 支持在远程表上执行的 INSERT 语句的 ROWCOUNT 设置。

服务器配置选项

SQL Server 2000 不支持下列服务器配置选项。

default sortorder id | resource timeout
extended memory size | spin counter
language in cache | time slice
language neutral full-text | unicode comparison style
max async IO | unicode locale id

有关配置选项的更多信息，请参见设置配置选项和 sp_configure。

恢复模型和数据库选项

Microsoft® SQL Server™ 2000 提供下列恢复模型，用以简化恢复计划、简化备份和恢复过程以及阐明系统操作要求之间的折衷：

  • 简单恢复

  • 完全恢复

  • 大容量日志记录恢复

每一个模型都针对性能、磁盘和磁带空间以及保护数据丢失的不同需要。

在 SQL Server 7.0 和早期版本中，通过 trunc. log on chkpt 和 select into/bulkcopy 数据库选项的组合设置来提供类似的功能。trunc. log on chkpt 和 select into/bulkcopy 数据库选项可通过使用 sp_dboption 存储过程来设置。

下表将 trunc. log on chkpt 和 select into/bulkcopy 的设置映射到新恢复模型。

如果 trunc. log on chkpt 是： | 且 select into/bulkcopy 是： | 则恢复模型是：
FALSE | FALSE | FULL
FALSE | TRUE | BULK-LOGGED
TRUE | TRUE | SIMPLE
TRUE | FALSE | SIMPLE

说明 如果升级某个数据库，而此数据库中的 trunc. log on chkpt 和 select into/bulkcopy 选项设置为真，select into/bulkcopy 设置为假，则强制此数据库为简单恢复模型。

为保持向后兼容，SQL Sever 2000 支持 trunc. log on chkpt 和 select into/bulkcopy 数据库选项，但在以后的版本中可能不再支持。

在 SQL Server 2000 中，ALTER DATABASE Transact-SQL 语句提供 SET 子句用以指定数据库选项，包括恢复模型。有关数据库选项的更多信息，请参见设置数据库选项和 ALTER DATABASE。

保留关键字

在 SQL Server 2000 中，这些关键字不再是保留关键字：AVG、COMMITTED、CONFIRM、CONTROLROW、COUNT、ERROREXIT、FLOPPY、ISOLATION、LEVEL、MAX、MIN、MIRROREXIT、ONCE、ONLY、PERM、PERMANENT、PIPE、PREPARE、PRIVILEGES、REPEATABLE、SERIALIZABLE、SUM、TAPE、TEMP、TEMPORARY、UNCOMMITTED、WORK。

在 SQL Server 2000 中，这些关键字是保留关键字：COLLATE、FUNCTION、OPENXML。

SQL 事件探查器扩展存储过程

在 SQL Server 2000 中不支持 SQL 事件探查器扩展存储过程，如 xp_trace_addnewqueue 和 xp_trace_generate_event。它们由一组新存储过程和系统用户定义函数替换。有关更多信息，请参见创建并管理跟踪和模板。

SQL 查询分析器中的默认连接选项设置

在 SQL Server 7.0 版及其早期版本中，SQL 查询分析器中 SET QUOTED_IDENTIFIER 的默认设置为 OFF。在 SQL Server 2000 中，SQL 查询分析器中的默认设置为 ON，这也是 ODBC 和 OLE DB 的默认设置。此外，SQL Server 2000 中的许多新特性（如索引视图和计算列上的索引）都要求该选项为 ON。

说明 当 QUOTED_IDENTIFIER 设置为 ON 时，如果对字符串使用双引号，则将收到语法错误。

bcp 实用工具

若要在 SQL Server 2000 中读取由 DB-Library bcp 的早期版本创建的字符文件，请使用 -V 开关。有关更多信息，请参见 bcp 实用工具。

来自早期版本可视化数据库设计工具的数据库关系图

对于拥有使用早期版本可视化数据库设计工具创建的数据库关系图的用户：

  • 如果在 SQL Server 2000 数据库上使用的第一个可视化数据库工具的版本比 SQL Server 2000 中的工具早，则 SQL Server 企业管理器不能在该数据库中打开或创建数据库关系图。任何这种尝试都将导致错误：
    ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'dbo.dt_getobjwithprop_u'.

    有几种可将数据库置于这种状态的可视化数据库工具。这些工具包括在 SQL Sever 7.0 及其早期版本中的查询设计器、视图设计器、数据库设计器和表设计器，以及许多用于枚举数据库对象的工具。在 Microsoft Access 2000 和 Microsoft Visual Studio® 6 中也有这些工具。

    在数据库上运行下列脚本将使 SQL Server 企业管理器可以处理该数据库中的数据库关系图：

    alter table dbo.dtproperties add uvalue nvarchar(255) null
go
if exists(select * from dbo.dtproperties) exec('update dbo.dtproperties set uvalue = convert(nvarchar(255), value)')
go

    该脚本运行后，SQL Sever 2000 中的 SQL Sever 企业管理器和可视化数据库工具的早期版本都可以访问该数据库中的数据库关系图。当对 SQL Server 2000 数据库使用数据库工具的早期版本时，还要考虑其它问题。有关更多信息，请参见 SQL Server 2000 的硬件和软件安装要求。

数据转换服务

以下是数据转换服务 (DTS) 的向后兼容性问题。

扩展 DTS 对象

数据转换服务 (DTS) 中的某些对象在 SQL Server 2000 中得到了扩展。 有关在 SQL Server 7.0 及其早期版本中使用新的数据转换服务对象、方法及属性的更多信息，请参见扩展 DTS 对象。

复制 SQL Server 对象任务

当在 SQL Server 2000 和 SQL Server 7.0 的实例之间复制数据库对象时，在使用复制 SQL Server 对象任务（Microsoft SQL Server 7.0 版中的传输 SQL Server 对象任务）上有限制。有关更多信息，请参见复制 SQL Server 对象任务。

在 SQL Server 7.0 或其早期版本上运行 DTS 包

在 SQL Server 2000 的实例上创建的 DTS 包不能装载到或运行于 SQL Server 7.0 版（或早期版本）的实例上。如果试图这么做，则可能会收到下面消息中的一个：

  • "无效的类字符串。"

  • "参数不正确。"

两条消息都指明：当前的服务器并不包含用于装载该包所必须的所有组件，并且不能支持在 DTS 包中所定义的对象（例如任务及转换）。

但是，如果收到这两条消息中的一条，仍然可以在 SQL Server 2000 实例上打开并运行包。

使用具有不同的排序规则、不同的代码页和非 Unicode 数据的 DTS

当使用复制 SQL Server 对象任务和复制列转换在 Microsoft SQL Server 2000 和 Microsoft SQL Server 7.0 实例之间复制非 Unicode 数据时，使用不同的代码页和排序规则会出现问题。有关更多信息，请参见数据变换和转换注意事项。

指定信任连接

在 SQL Server 7.0 中，不必在连接字符串中为 ADO、OLE DB 或 ODBC 编写"trusted_connection=yes"代码即可获得信任连接。如果未指定 UID 和PASSWORD，SQL Server 将默认为尝试信任连接。而在 SQL Server 2000 中，必须编写"trusted_connection=yes"代码才能获得信任连接。

SQL-DMO 中的扩展对象

SQL-DMO 中的某些对象在 SQL Server 2000 中得到了扩展。有关在 SQL Server 7.0 或其早期版本中使用扩展 SQL-DMO 对象、方法及属性的更多信息，请参见扩展 SQL-DMO 对象程序设计。

SQL-SCM

SQL-SCM（服务控制管理器）API 已删除，不再受到支持。

English Query 和 SQL Server 7.0 OLAP 服务

对于想要安装或卸载 English Query 的SQL Sever 7.0 OLAP 服务的用户，将会发生下列问题：

  • 在安装期间必须停止运行 SQL Sever 7.0 OLAP 服务。在安装 English Query 之前必须关闭 OLAP 服务。（请参见"控制面板"中的"服务"应用程序。）

  • 如果已安装了 SQL Server 7.0 OLAP 服务并且卸载 English Query，则必须重新安装 OLAP 服务。相反，如果已安装了 English Query 并且卸载 OLAP 服务，则必须重新安装 English Query 以维护 OLAP 连通性。

在 SQL Server 2000 Analysis Services（即以前的 OLAP Services）中不会发生上述问题。


SQL Server 2000 与 SQL Server 6.5 版

Microsoft® SQL Server™ 2000 与 SQL Server 6.5 版在许多方面兼容。SQL Server 2000 中保留了 SQL Server 6.5 版的大多数产品功能。在 SQL Server 升级向导将数据库服务器升级到 SQL Server 2000 后，大多数 SQL Server 6.5 应用程序的运行方式不变。

SQL Server 2000 升级进程：

  • 添加能使任务更容易完成的 SQL Server 2000 的新特性或更改后的早期版本功能。

  • 将升级所需的时间和努力减到最小。

在某些情况下，会发生兼容性问题：

  • 配置选项

    一些服务器配置选项已经更改。

  • SQL-DMO、任务和复制

    任务、复制和设备对象发生更改。SQL Server 2000 使用作业代替任务，并提供新系统表和系统存储过程。

  • 复制和触发器

允许在订阅服务器上进行数据修改的复制类型使用触发器跟踪已发布表的更改。如果在修改已发布表的应用程序上存在触发器，则应启用 sp_configure 服务器选项 nested triggers。该选项影响合并复制中使用的表，或具有即时更新或排队更新选项的快照复制或事务复制中使用的表。在将这些复制类型添加到使用触发器的现有数据库之前，确保应用程序正常工作并启用 nested triggers 选项。默认情况下启用 nested triggers 选项；但如果以前禁用了该选项，则需要再次启用它。

  • 段和设备

    SQL Server 7.0 和 SQL Server 2000 存储索引或表时，使用文件和文件组代替段和设备。除非应用程序依赖于设备中的段的物理布局，否则应用程序不会因此出现兼容性问题。

  • 系统表

    如果应用程序依赖于直接访问系统表，则可能需要修改应用程序。建议使用系统存储过程或信息架构视图。

    下面是不包含在 SQL Server 2000 中的 SQL Server 6.x 系统表。

    master.dbo.spt_datatype_info | sysprocedures
    sysbackupdetail | sysrestoredetail
    sysbackuphistory | sysrestorehistory
    syshistory | syssegments
    syskeys | systasks
    syslocks | sysusages

  • 备份和还原

    SQL Server 2000 使用 BACKUP 和 RESTORE 语句代替 DUMP 和 LOAD。向后兼容支持 DUMP 和 LOAD，但有一些限制。

  • 系统存储过程

    不再支持某些系统存储过程。

有关更多信息，请参见对特定向后兼容性问题的讨论。

设置向后兼容级别

当在默认设置下运行时，对于某些行为与 SQL Server 早期版本中的标准不同的 Transact-SQL 语句，Microsoft SQL Server 2000 执行 SQL-92 行为。SQL Server 2000 还强制保留一些关键字，这些关键字在 SQL Server 的早期版本中不属于关键字。如果使用现有的应用程序升级现有的系统，可以使用数据库兼容级别设置保留以前的行为（如果现有的应用程序依赖于这些行为）。这为您提供了时间以便按有序的方式升级应用程序。但是，大多数应用程序都不受这种行为改变的影响，并可以在SQL Server 2000 兼容级别中运行。

使用 sp_dbcmptlevel 系统存储过程可以为每个数据库指定兼容级别。可以将数据库兼容级别设置为 60（与 6.0 版兼容）、65（与 6.5 版兼容）、70（与 7.0 版兼容）以及默认值 80（与 SQL Server 2000 兼容）。兼容级别设置一般被限制为对少数 Transact-SQL 语句的行为有影响，这些语句也存在于 SQL Server 的早期版本中。即使当将数据库兼容级别设置为 60 或 65 时，应用程序也能获得几乎所有 SQL Server 2000 的新性能增强收益。应用程序还从某些功能（如改进的查询处理器）中获益。有关更多信息，请参见 sp_dbcmptlevel 中有关不同设置所控制的特定行为的讨论。

对于安装 SQL Server 2000 的所有实例，所有数据库的默认级别为 80。对于从 SQL Server 7.0 升级到 SQL Server 2000，所有数据库的默认级别为 80。对于从 SQL Server 6.5 和 SQL Server 6.0 升级到 SQL Server 2000，保持现有默认兼容级别。

master 数据库的兼容级别为 80 并且不能更改。如果向 master 添加了任何用户定义对象，则必须保证它们能够在 80 兼容级别下正确运行。

model 数据库在升级过程中自动设置成 SQL Server 2000 兼容级别。所有用户定义的新数据库创建时的兼容级别设置都与 model 一样。如果不希望在升级之后创建的新数据库中使用任何 SQL Server 2000 行为，那么请使用 sp_dbcmptlevel 更改 model 中的兼容级别设置。

在较低兼容级别将禁用某些行为。例如，关键字 LEFT、OUTER 和 JOIN 在兼容级别 60 不是关键字。这意味着数据库兼容级别必须设置为 65 或更高，LEFT OUTER JOIN 子句才有效。在任意应用程序能够利用那些只在较高兼容级别下才可用的特性之前，所有使用数据库的应用程序都必须升级，以便在较高的兼容级别下正常运行。

同样，将数据库兼容级别设置成 65 可使数据库与 6.5 版兼容，但不一定提供 6.5 版的行为。例如，当 SET ANSI_PADDING 为 ON 并且试图将字符串 'abc' 和 'abc ' 插入主键列时，SQL Server 2000 认为这两个字符串是重复的并且不违反主键约束。在 SQL Server 6.5 中，则认为这两个字符串是唯一的并且两者都成功地插入。将兼容级别设置为 65 不强制 SQL Server 2000 将字符串视为唯一值。

虽然在兼容级别 60 或 65 下运行时，在 SQL Server 2000 上保留了旧有的行为，但在以后的 SQL Server 版本中可能会放弃对这些行为的支持。建议一旦可行，就计划升级您的应用程序，以便在兼容级别设置为 80 时正确运行。

请参见

保留关键字

系统存储过程

系统表


SQL Server 向后兼容性详细信息

Microsoft® SQL Server™ 2000 增加了许多新特性。大多数更改是内部的，将不影响用户的数据库脚本或应用程序。所有的 Transact-SQL 语句都是兼容的。然而，管理工具或脚本应该升级到能在 SQL Server 2000 中工作。

本节中的向后兼容性主题包含 SQL Server 6.5 版中支持的功能和行为的详细列表，这些功能及行为已经更改并且可能影响管理工具或脚本。这些变化不是由向后兼容级别所控制的。

为了表明其对管理工具或脚本潜在的影响，功能更改分组为四个级别。

级别 | 组成
1 | 管理语句、存储过程、或是已从 SQL Server 2000 中删除或在 SQL Server 2000 中不再受其支持的 SQL Server 项。在使用 SQL Server 2000 之前，必须修复使用这些项的管理工具或脚本。有关这些功能的更多信息，请参见级别 1：处理废止的功能。
2 | 产生与 SQL Server 早期版本不同行为的重要更改。例如，在此类别中的项目已进行了以下更改：更改数据类型转换或选定功能使用中的行为，更改选定 Transact-SQL 语句中子句的行为，更改选定系统表中的列名和更改因为数据库兼容性设置引起的行为。有关这些功能的更多信息，请参见级别 2：处理对行为的重要改动。
3 | 专用于支持向后兼容性的项目。包括在这类中的任何项目将获得完全支持，但在以后的版本中可能被删除或不再受支持。SQL Server 2000 提供更有效地完成这些任务的功能，并具有不断更新的支持。有关这些功能的更多信息，请参见级别 3：进行更新以改进早期的功能性。
4 | 产生与 SQL Server 早期版本不同行为的次要更改。例如，此类别中的项目属以下情况：已忽略或具有一个或多个忽略了的参数、更改了字节长度、添加了参数或列、或更改了数据类型列。有关这些功能的更多信息，请参见级别 4：处理行为上的微小改动。

您可能发现回顾 SQL Server 2000 与 SQL Server 7.0 版非常有帮助。


在 SQL Server 2000 中不使用的 SetHostName 属性

当使用 SQL Server 6.5 集成安全性时，除非系统管理员激活 SQL 企业管理器中的 SET HOSTNAME TO USERNAME 选项，否则 SQL Server 6.5 不报告连接所使用的 Windows NT 帐户。

还可以通过 SQL-DMO SetHostName 属性激活该设置。该设置生效后，下列函数和列返回用户的 Windows NT 帐户而不是客户计算机的网络名：

  • Transact-SQL HOST_NAME() 函数

  • 由 sp_who 返回的结果集中的 hostname 列

  • sysprocesses 中的 hostname 列

在 SQL Server 2000 中，sp_who 结果集中的 loginame 列包含使用 Windows NT 身份验证建立连接的 Windows NT 帐户名。应用程序需要的 Windows NT 帐户若与使用 Windows NT 身份验证的连接相关联，则应引用该列。

SQL Server 2000 企业管理器中不再存在 SET HOSTNAME TO USERNAME 选项。SQL Server 2000 忽略 SQL-DMO SetHostName 属性的设置。


级别 1：处理废止的功能

向后兼容级别 1 由管理语句、存储过程或过去由 SQL Server 6.5 支持，而现在已从 SQL Server 2000 中删除或不再受其支持的 Microsoft® SQL Server™ 项组成。在使用 SQL Server 2000 之前，必须修复使用这些项的管理工具或脚本。

子标题 | 相关对象
备份和还原 | BACKUP RESTORE DUMP LOAD sysbackuphistory sysbackupdetail sysrestorehistory sysrestoredetail backupfile backupmediafamily backupmediaset backupset restorefile restorefilegroup restorehistory
配置选项 | sp_configure（backup buffer size、backup threads、database size、free buffers、hash buckets、LE threshold maximum、LE threshold minimum、LE threshold percent、logwrite sleep、max lazywrite IO、memory、open databases、procedure cache、RA cache hit limit、RA cache miss limit、RA delay、RA pre-fetches、RA slots per thread、RA worker threads、recovery flags、remote conn timeout、SMP concurrency、sort pages、min memory per query、index create memory、tempdb in ram 和 user connections 选项） trace flag 204
自定义排序顺序 | 字符集、排序顺序和 Unicode 排序规则
数据库 | ALTER DATABASE
数据库选项 | sp_dboption（subscribe 和 no chkpt. on recovery 选项） sp_addsubscription RESTORE
数据访问对象 (DAO) | odbccmpt 实用工具
DBCC | DBCC DBREINDEX DBCC MEMUSAGE DBCC SHRINKDB
DB-Library | 两阶段提交 DB-Library for Visual Basic
DECnet 网络库 | DECnet 套接字 Net-Library
磁盘命令 | DISK REINIT DISK REFIT ALTER DATABASE
磁盘镜像 | DISK MIRROR DISK REMIRROR DISK UNMIRROR
索引 | CREATE INDEX
开放式数据服务 | Windows NT 组件服务 SRV_CONFIG SRV_PROC SRV_SERVER srv.h Opends60.lib
程序组工具和实用工具 | 客户端网络实用工具 ISQL_w MS 查询 SQL 客户端配置 SQL 企业管理器 SQL 帮助 SQL 安全管理器 SQL 跟踪 SQL 性能监视器 SQL 服务管理器 SQL 安装程序 SQL 查询分析器 SQL Server 企业管理器 SQL Server 事件探查器 SQL Server 服务管理器
复制 | 受限发布 DBOption 对象 ReplicationDatabase 对象的 EnablePublishing 属性 repl_publisher 登录
安全性 | DENY 分隔标识符
段 | CREATE INDEX CREATE TABLE sp_addsegment sp_dropsegment sp_extendsegment sp_helpsegment CREATE DATABASE ALTER DATABASE
服务 | SQL Executive
SET DISABLE_DEF_CNST_CHK | SET DISABLE_DEF_CNST_CHK
SET SHOWPLAN | SET SHOWPLAN SET SHOWPLAN_ALL SET SHOWPLAN_TEXT
SQL 警报器 | SQLALRTR.exe
SQL-DMO | sqlole.dll
系统存储过程 | xp_snmp_getstate xp_snmp_raisetrap
系统存储过程（复制） | sp_replica sp_replsync sp_helppublicationsync sp_subscribe sp_unsubscribe @@ERROR sp_changepublication sp_addpublisher sp_adddistpublisher sp_droppublisher sp_dropdistpublisher sp_distcounters sp_helpreplicationdb sp_helpreplicationdboption sp_replstatus
系统存储过程（系统） | ALTER TABLE CREATE TABLE sp_help sp_helpconstraint sp_commonkey sp_dropkey sp_foreignkey sp_helpjoins sp_helpkey sp_primarykey sp_placeobject sp_dbinstall sp_attach_db sp_makestartup sp_unmakestartup sp_procoption sp_helplogins sp_helprotect sp_tableoption sp_serveroption（fallback 选项） sp_setlangalias sp_droplanguage sp_fallback_activate_svr_db sp_fallback_deactivate_svr_db sp_fallback_enroll_svr_db sp_fallback_help sp_fallback_permanent_svr sp_fallback_upd_dev_drive sp_fallback_withdraw_svr_db sp_devoption sp_diskdefault sp_helplog sp_helpstartup sp_help_revdatabase sp_sqlexec sp_addlanguage
系统存储过程（任务） | sp_addalert sp_addnotification sp_addoperator sp_dropalert sp_dropnotification sp_dropoperator sp_helpalert sp_helphistory sp_helpnotification sp_helpoperator sp_purgehistory sp_runtask sp_stoptask sp_updatealert sp_updatenotification sp_updateoperator sp_add_alert sp_add_notification sp_add_operator sp_delete_alert sp_delete_notification sp_delete_operator sp_help_alert sp_help_jobhistory sp_help_notification sp_help_operator sp_purge_jobhistory sp_start_job sp_stop_job sp_update_alert sp_update_notification sp_update_operator
系统表 | 信息架构视图 系统存储过程（目录过程） sysdevices （mirrorname 和 stripeset 列） syshistory sysjobhistory sysindexes （distribution、segment、rowpage、keys1 和 keys2 列） syskeys syslocks syslockinfo syslogs sysprocesses （gid 和 suid 列） sysprocedures syscomments syssegments CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE CREATE INDEX systasks sysjobs sysjobsteps sysjobservers sysusages master.dbo.spt_datatype_info
事务 | 数据类型转换
实用工具 | probe 登录


级别 2：处理对行为的重要改动

向后兼容级别 2 包含 Microsoft® SQL Server™ 2000 中的重要改动，这些改动产生的行为不同于 SQL Server 早期版本的行为。例如，在此类别中的项目已进行了以下更改：更改数据类型转换或选定功能使用中的行为，更改选定 Transact-SQL 语句中子句的行为，更改选定系统表中的列名和更改因为数据库兼容性设置引起的行为。本主题包括这些项目的向后兼容性详细信息。

子标题 | 相关对象
备份和还原 | BACKUP CREATE DATABASE ALTER DATABASE RESTORE sp_dboption
大容量复制 | bcp 实用工具
配置选项 | 设置配置选项 sp_configure（open databases 和 user connections 选项)
数据库页和扩展盘区 | 页和扩展
数据类型 | CAST 和 CONVERT 数据类型
DB-Library | dbcursorfetchex
空字符串 | sp_dbcmptlevel CHARINDEX DATALENGTH LEFT LTRIM PATINDEX REPLICATE RIGHT RTRIM SPACE SUBSTRING UPDATETEXT
索引 | CREATE INDEX
INSERT | sp_dbcmptlevel INSERT
键集游标 | 键集游标
LTRIM 和 RTRIM 剪裁函数 | LTRIM RTRIM
ODBC | SQLGetDiagRec SQLMoreResults
RIGHT | 使用标识符 保留的关键字
安全性 | GRANT REVOKE DENY sp_addlinkedsrvlogin
SELECT | SELECT
SET SHOWPLAN | SET SHOWPLAN_ALL SET SHOWPLAN_TEXT
系统表 | 信息架构视图 系统存储过程（目录过程） sysdatabases（logptr 和 dumptrdate 列） sysmessages（langid 列） syslogins（language 列） 计算列
表提示 | DELETE FROM INSERT SELECT UPDATE
事务 | SET TRANSACTION ISOLATION LEVEL SET CURSOR_CLOSE_ON_COMMIT ROLLBACK DECLARE CURSOR
触发器和系统存储过程 | sp_dbcmptlevel sp_create_removable CREATE TRIGGER SET QUOTED_IDENTIFIER SET ANSI_NULLS SET ANSI_DEFAULTS
UPDATE | @@ERROR UPDATE INSERT
UPDATETEXT | UPDATETEXT WRITETEXT
视图 | DELETE INSERT UPDATE


级别 3：进行更新以改进早期的功能性

向后兼容性级别 3 由过去 SQL Server 6.5 版支持、现在 SQL Server 2000（以及 SQL Server 7.0）只是为保持向后兼容性而支持的项目组成。包括在这类中的任何项目将获得完全支持，但在以后的版本中可能被删除或不再受支持。建议如果时间允许，将向后兼容性项目替换为推荐的项目。SQL Server 2000 提供更有效地完成这些任务的功能，并具有不断更新的支持。

本主题包括这些项目的向后兼容性详细信息。

子标题 | 相关对象
备份和还原 | BACKUP RESTORE CREATE DATABASE
数据库选项 | sp_dboption（publish 选项） sp_replicationdboption
DBCC | DBCC NEWALLOC DBCC CHECKALLOC DBCC ROWLOCK 构架增强 DBCC TEXTALL DBCC CHECKDB DBCC TEXTALLOC DBCC CHECKTABLE DBCC DBREPAIR DROP DATABASE
设备 | SQL Server 构架概述 DISK INIT CREATE DATABASE ALTER DATABASE DISK REINIT sp_logdevice sp_dropdevice
开放式数据服务 | srv_config srv_config_alloc srv_getconfig srv_init srv_run srv_tdsversion srv_getuserdata srv_setuserdata srv_errhandle srv_iodead srv_log srv_sendstatus srv_sfield srv_event srv_eventdata srv_getserver srv_got_attention srv_handle srv_pre_handle srv_post_handle srv_setevent srv_terminatethread srv_attention srv_connect srv_disconnect srv_language srv_rpc srv_exit srv_start srv_sleep srv_restart srv_stop srv_langcpy srv_langlen srv_langptr srv_paramdata srv_paramlen srv_parammaxlen srv_paramname srv_paramnnumber srv_paramset srv_paramstatus srv_paramtype srv_returnval srv_rpcdb srv_rpcnumber srv_rpcoptions srv_clearstatistics srv_sendstatistics srv_alloc srv_bmove srv_bzero srv_free srv.h srv_describe srv_setcollen srv_setcoldata srv_paramsetoutput srv_paraminfo
查询性能 | SUSER_ID SUSER_SID SUSER_NAME SUSER_SNAME syslogins sysdatabases sysremotelogins sysusers sysalternates
安全性 | GRANT 身份验证 SETUSER
SELECT | FASTFIRSTROW SELECT INDEX = (index hint)
SET SHOWPLAN | SET SHOWPLAN_TEXT SET SHOWPLAN_ALL SQLGetDiagRec
系统存储过程（扩展） | xp_grantlogin xp_revokelogin sp_grantlogin sp_revokelogin
系统存储过程（系统） | sp_add_job sp_add_jobschedule sp_add_jobstep sp_addtask sp_delete_job sp_delete_jobschedule sp_delete_jobstep sp_droptask sp_help_jobhistory sp_help_jobschedule sp_help_jobstep sp_helptask sp_purge_jobhistory sp_reassigntask sp_start_job sp_stop_job sp_update_job sp_update_jobschedule sp_update_jobstep sp_updatetask


级别 4：处理行为上的微小改动

向后兼容性级别 4 包括 Microsoft® SQL Server™ 2000 中的微小改动，这些改动产生与 SQL Server 早期版本不同的行为。例如，这一级中的项目有如下改动：项目被忽略或包含一个或多个已忽略的参数，字节长度变化，添加了参数或列，或者更改了数据类型列。

本主题包括这些项目的向后兼容性详细信息。

子标题 | 相关对象
别名 | 角色 管理权限
备份和还原 | RESTORE HEADERONLY LOAD HEADERONLY
配置 | sp_configure（media retention 选项） 设置配置选项
CREATE PROCEDURE | CREATE TABLE SELECT INTO
数据类型 | decimal 和 numeric 使用数学函数 +（加） -（减） *（乘） /（除） ATN2 AVG CAST 和 CONVERT EXP POWER RADIANS ROUND SUM
DATEPART 和 SET DATEFIRST | SET DATEFIRST DATEPART
DBCC | DBCC
DBCS 字符串比较 | Unicode 空格字符
DELETE 和 SELECT | FROM
设备 | ALTER DATABASE
函数 | @@DBTS
全局变量 | 函数
ODBC | SQL_COPT_SS_PERF_QUERY_INTERVAL SQLMoreResults SQL_NO_DATA
重建 master 数据库 | 重建主控实用工具
重建注册表（级别 4） | setup/t RegistryRebuild = On
复制 | 在不同版本的 SQL Server 间复制 订阅发布的一个或多个项目
安全性 | SYSTEM_USER
SELECT | SELECT FROM
触发器和系统存储过程（系统） | CREATE TRIGGER sp_dboption（recursive triggers 选项） sp_tableoption xp_readmail xp_sendamil
UPDATE | UPDATE
实用工具 | SQL 查询分析器 isql 实用工具


安装或升级到 SQL Server 2000 之后

进行标准安装的组件包括：

  • SQL Server 关系数据库引擎。

  • 用于存储系统级信息（如登录和配置设置）并作为数据库模板使用的系统数据库。

  • 作为学习工具提供的 pubs 和 Northwind 示例数据库。

  • 存储过程，重新编译的 Transact-SQL 语句的集合。

  • 用于管理 SQL Server 的交互式管理工具。

  • SQL Server 联机丛书，是完整的 SQL Server 2000 文档。

请参见

联机丛书

管理工具

选择组件

SQL 存储过程

使用开始菜单

系统和示例数据库

系统数据库和数据


使用开始菜单

Microsoft® SQL Server™ 2000 安装程序在"开始"菜单上的"程序"组中创建 Microsoft SQL Server 程序组。从"Microsoft SQL Server"程序组可以启动：

  • 联机丛书。

  • 客户端网络实用工具。

  • 在 IIS 中配置 SQL XML 支持。

  • 企业管理器。

  • 导入和导出数据。

  • 事件探查器。

  • 查询分析器。

  • 服务器网络实用工具。

  • 服务管理器。
Microsoft SQL Server — 版本切换程序组

如果在同一台计算机上安装了 Microsoft SQL Server 2000 的实例（默认的或命名的）和 Microsoft SQL Server 6.5 版，安装程序将删除"Microsoft SQL Server 6.5"程序组并添加"Microsoft SQL Server— 版本切换"程序组。SQL Server 6.5 和 SQL Server 2000 不能同时运行，但是使用"版本切换"程序组后，就可以在两种版本之间切换。

在"开始"菜单中，只有活动版本的 SQL Server 程序组可以在任何特定时间进行访问。非活动版本显示在"版本切换"程序组中，因此可以很快地从一个版本切换到另外一个版本。

"Microsoft SQL Server — 版本切换"程序组包含下列应用程序：

  • Microsoft SQL Server 6.5 或 Microsoft SQL Server 2000（非活动版本）

  • SQL Server 升级向导

  • 卸载 SQL Server 6.5

请参见

在 SQL Server 6.5 和 SQL Server 2000 之间切换


系统和示例数据库

安装 Microsoft® SQL Server™ 2000 之后，安装程序将创建下表中显示的数据库和日志文件。

数据库 | 数据库文件 | 日志文件
master | Master.mdf | Mastlog.ldf
model | Model.mdf | Modellog.ldf
msdb | Msdbdata.mdf | Msdblog.ldf
tempdb | Tempdb.mdf | Templog.ldf
pubs | Pubs.mdf | Pubs_log.ldf
Northwind | Northwnd.mdf | Northwnd.ldf

master、model、msdb 和 tempdb 都是系统数据库。pubs 和 Northwind 示例数据库作为学习工具提供。（这些数据库的名称区分大小写。）SQL Server 联机丛书中的大多数示例都基于这些数据库。

说明 数据库和日志文件的默认位置是 Program Files\Microsoft SQL Server\Mssql\Data。如果安装 SQL Server 时更改了默认位置，则该位置可能会变化。

请参见

Northwind 示例数据库

pubs 示例数据库

系统数据库和数据


定位目录和文件

下表显示 Microsoft® SQL Server™ 2000（主要为默认实例）的目录和文件的默认位置。此外，根据安装选项的不同，下面列出的文件可能不会全部出现在计算机中，而其它没有列出的文件却可能出现。

这里列出的路径为默认路径，如果安装时改变了位置，路径将发生变化。程序和数据文件的位置都可以更改，但是不能更改共享工具的位置。

重要 不要删除下列任何目录或它们的内容：Binn、Data、Ftdata、HTML 或 1033。如果需要可以删除其它目录，但如果不卸载和重新安装 SQL Server 2000，可能无法重新获得任何丢失的功能或数据。

不要删除或修改 HTML 目录中的任何 .htm 文件。SQL Server 企业管理器和其它工具都需要这些文件才能正常工作。

所有 SQL Server 2000 实例的共享文件

下表显示 SQL Server 2000 所有默认和命名实例的共享文件的位置。

位置 | 描述
\Program Files\Microsoft SQL Server\80\Com | 组件对象模型 (COM) 对象的动态链接库 (DLL)。
\Program Files\Microsoft SQL Server\80\Com\Binn\Resources\1033 | 此 COM 目录中 DLL 使用的资源文件 (RLL)。（注意：1033 用于美国英语；本地化版本使用不同目录号。）
\Program Files\Microsoft SQL Server\80\Tools\Binn | Microsoft Windows NT® 客户端可执行文件。
\Program Files\Microsoft SQL Server\80\Tools\Binn\Resources\1033 | Tools\Binn 目录中 DLL 使用的资源文件。
\Program Files\Microsoft SQL Server\80\Tools\Books | SQL Server 联机丛书文件，包括联机帮助文件。
Program Files\Microsoft SQL Server\80\Tools\DevTools\ | 开发人员使用的头文件、库文件和示例程序。
Program Files\Microsoft SQL Server\80\Tools\Html | Microsoft 管理控制台 (MMC) 和 SQL Server HTML 文件。
Program Files\Microsoft SQL Server\80\Tools\Templates | 含有 SQL 脚本的样板文件，可帮助您在数据库中创建对象。

SQL Server 2000 默认实例的程序和数据文件

下表显示 SQL Server 2000 默认实例的程序和数据文件的位置。有些默认文件位置可以在安装时更改。

位置 | 描述
\Program Files\Microsoft SQL Server\Mssql\Backup | 备份文件的默认位置。
\Program Files\Microsoft SQL Server\Mssql\Binn | 用于扩展存储过程的 Microsoft Windows NT 服务器可执行文件和 DLL 文件。
\Program Files\Microsoft SQL Server\Mssql\Binn\Resources\1033 | 在此 Binn 目录中 DLL 使用的资源文件。
Program Files\Microsoft SQL Server\Mssql\Data | 系统和示例数据库文件。
Program Files\Microsoft SQL Server\Mssql\Ftdata | 全文目录文件。
Program Files\Microsoft SQL Server\Mssql\Install | 安装时运行的脚本和最后得到的输出文件。
Program Files\Microsoft SQL Server\Mssql\Jobs | 临时作业输出文件的存储位置。
Program Files\Microsoft SQL Server\Mssql\Log | 错误日志文件。
Program Files\Microsoft SQL Server\Mssql\Repldata | 复制任务的工作目录。
Program Files\Microsoft SQL Server\Mssql\Upgrade | 从 SQL Server 6.5 版升级到 SQL Server 2000 所使用的文件。

SQL Server 2000 默认实例的文件位置

下图显示 Microsoft® SQL Server™ 2000 默认实例的文件位置。

请参见

SQL Server 2000 的文件路径


更改密码和用户帐户

Microsoft® SQL Server™ 2000 服务帐户和密码与 Microsoft Windows® 用户帐户和密码链接。一个位置的更改可能要求另一个位置也作出更改。

安装后更改 SQL Server 服务帐户

安装 SQL Server 2000 之后，请使用 SQL Server 企业管理器更改指派的密码或其它 SQL Server– 相关服务的属性。每个服务都必须单独更改。新用户帐户在服务重新启动时生效。在故障转移群集节点关闭或脱机时，不得更改任何 SQL Server 服务帐户的密码。如果一定要这么做，则在所有节点回到联机状态后，必须使用企业管理器重置该密码。

如果要运行 Microsoft Windows NT®，且选择将当前 SQL Server 服务帐户更改为非管理员帐户（SQL Server 的当前帐户不是管理员帐户），则显示"有效的管理员登录"对话框。SQL Server 必须有管理员权限才能更改安全条目，所以必须输入用户名、密码和域以模拟选定的非管理员服务帐户。

指定该信息后，所有的对象都被授予完全控制权限。对象的位置由下列决定：

  • 为所有的二进制文件和特定实例的数据安装位置设置权限。

  • 注册表权限取决于实例是否是默认值或是否已命名实例：

    对于默认实例，权限仅应用于列在下面 HKLM\Software\Microsoft\MSSQLServer 项中的项:

    • SQLServerAgent

    • 复制

    • 提供程序

    • 安装程序

    • 跟踪

    • MSSQLServer

    对于命名实例，权限应用于整个 HKLM\Software\Microsoft\MicrosoftSQLServer\80 项。

下列权限授予帐户：

  • SeServiceLogonRight，使帐户得以作为服务运行。

  • SeLockMemoryPrivilege，使帐户得以使用 SQL Server 的 AWE 内存功能。

  • SeTcbPrivilege，使帐户得以模拟其它帐户。

如果要在故障转移聚集配置中运行 SQL Server，则还为聚集中的所有二进制文件和所有节点的数据安装位置设置权限。权限还授予聚集对象上的服务帐户。

说明 如果运行 Microsoft Windows 2000 并希望使用 Windows 2000 加密文件系统对任何 SQL Server 文件进行加密，则必须首先解密这些文件，然后才可以更改 SQL Server 服务帐户。如果不首先解密这些文件，然后重置 SQL Server 服务帐户，则将无法解密这些文件。

可以将 SQLServerAgent 服务帐户更改为非 Microsoft Windows NT® 4.0 管理员帐户。但是，Windows NT 4.0 帐户必须是 sysadmin 固定服务器角色的成员，才能运行 SQL Server 代理。

更改 MSSQLServer 服务登录（企业管理器）

企业管理器

企业管理器

Windows 密码更改

如果 Windows 密码在安装 SQL Server 2000 后发生更改（例如密码过期），则必须同样在 Windows 中修改 SQL Server 服务的用户帐户信息。

更改 SQL Server 服务登录帐户信息 (Windows NT)

Windows

Windows

更改 SQL Server 服务登录帐户信息 (Windows 2000)

Windows

Windows

在"控制面板"中更改完 SQL Server 服务帐户信息之后，还必须在 SQL Server 企业管理器中更改 SQL Server 服务帐户。这将使 Microsoft 搜索服务的服务帐户信息也保持同步。

重要 虽然 Microsoft 搜索服务总是指派给本地系统帐户，但是全文检索引擎始终对 Windows 中的 SQL Server 服务帐户进行跟踪。如果 Windows 密码的更改没有使用 SQL Server 企业管理器进行重新设置，则全文检索和故障转移群集就无法使用。

有关创建 Windows NT 用户帐户、授予高级用户权限、设置密码过期和管理组成员的更多信息，请参见 Windows NT 文档或"域用户管理器帮助"。Microsoft Windows 2000 用户请参见 Windows 2000 文档中的"计算机管理"或"组策略编辑器"。

请参见

创建安全帐户

安全构架


重命名服务器

如果更改运行 Microsoft® SQL Server™ 2000 的计算机名称，SQL Server 启动时将识别出新名称。不必再次运行安装程序以重置计算机名称。

重新启动服务器后，可以使用新计算机名称连接到 SQL Server。但是，若要更改 sysservers 系统表，则需手工运行下列过程：

sp_dropserver <old_name>
go
sp_addserver <new_name>
go
与远程登录和复制有关的问题

如果计算机进行了远程登录，例如，如果该计算机是一个复制发布服务器或分发服务器，sp_dropserver 可能会产生以下类似错误：

Server: Msg 15190, Level 16, State 1, Procedure sp_dropserver, Line 44
There are still remote logins for the server 'SERVER1'.

若要解决这一问题，则可能需要除去该服务器的远程登录。如果安装了复制，则必须在运行 sp_dropserver 存储过程之前禁用服务器上的复制。

使用 SQL Server 企业管理器禁用复制

  1. 扩展服务器组，然后扩展分发服务器（包含分发数据库的服务器）。

  2. 右击"复制"文件夹，然后单击"禁用发布"。

  3. 完成"禁用发布和分发向导"中的步骤。


初始安装后部署 SQL Server

Microsoft® SQL Server™ 2000 包含分发安装磁盘图象的新方法。第一次创建安装时，该安装标志为一个新的安装。当安装后重新启动服务器时，SQL Server 2000 验证服务器的名称是否已更改。如果服务器名称已更改，则会自动更正名称。

该功能允许独立服务提供商安装 SQL Server 2000、停止服务器、克隆磁盘映象，然后根据需要分发。在第一次启动分发服务器时更正名称。

该过程只可执行一次。如果重新启动然后停止服务器，则必须创建新的 SQL Server 安装作为在部署时分发的映象。


安装全文检索和索引工具

默认情况下，Microsoft® SQL Server™ 2000 标准版和企业版的典型安装均安装全文检索引擎（Microsoft 搜索服务）。

重要 SQL Server 7.0 中没有安装 SQL Server 7.0 到 SQL Server 2000 的升级文件和全文检索，完成升级后应将全文检索作为附加组件安装。

Microsoft 索引服务 2.0 版

除了在 SQL Server 数据的字符列中使用全文检索之外，还可以将 Microsoft 索引服务和 Microsoft 搜索服务一起使用，以便对文件系统中的数据进行文本化查询。该索引服务包含在 Microsoft Windows® 2000 中。Microsoft Windows NT® 用户可以从 Microsoft Windows NT 4.0 Option Pack 安装索引服务。

安装 Microsoft 索引服务 2.0（仅用于 Windows NT）

  1. 安装 Windows NT 4.0 Option Pack。

  2. 选择 Index Server 2.0。出现错误信息，说明 Index Server 2.0 没有正确安装。

  3. 安装 Windows NT 4.0 Service Pack 4。

  4. 重新安装 Windows NT 4.0 Option Pack。不必更改任何设置。

  5. 可选步骤：重复 Windows NT 4.0 Service Pack 4 的重新安装。

    重复这一过程以确保正确安装。

请参见

文件数据的全文查询

如何向 SQL Server 2000 实例中添加组件（安装程序）


在升级之后配置 SQL Server 2000

将服务器升级到 Microsoft® SQL Server™ 2000 后，可能需要执行几项配置任务，例如：

  • 设置服务器配置参数。

  • 设置安全参数。

  • 注册服务器并将其添加到服务器组。

使用 SQL Server 企业管理器或 Transact-SQL 执行这些任务。

请参见

SQL Server 管理概述


在 SQL Server 6.5 和 SQL Server 2000 之间切换

Microsoft® SQL Server™ 2000 可以与 Microsoft SQL Server 6.5 版安装在同一台计算机上，但同一时刻只能有一个版本处于活动状态。

说明 在版本之间切换与运行多实例不同。有关更多信息，请参见处理 SQL Server 的实例和版本。

SQL Server 升级向导完成从 SQL Server 6.5 版的转换后，SQL Server 2000 就成为活动的 SQL Server 版本。如果计算机上有充足的磁盘空间，则可以完整地保留 SQL Server 6.5。

若要从一个版本切换到另一个版本，请使用"开始"菜单上的"Microsoft SQL Server — 版本切换"应用程序，或者运行 Vswitch.exe。

重要 在试图在 SQL Server 的活动版本和非活动版本之间切换之前，请确认 SQL Server 升级向导已完成其升级任务。

从 SQL Server 6.5 切换到 SQL Server 2000

命令提示符

命令提示符

Windows

Windows

请参见

与 SQL Server 2000 一起使用 SQL Server 6.5

升级之后删除 SQL Server 7.0 或 SQL Server 6.5


升级之后删除 SQL Server 7.0 或 SQL Server 6.5

在将 Microsoft® SQL Server™ 7.0 版安装升级为 Microsoft SQL Server 2000 之后，或者在将数据库从 SQL Server 6.5 版升级到 SQL Server 2000 之后，可以在计算机中保留早期的版本。

可以利用许多配置将 SQL Server 早期版本和 SQL Server 2000 保留在一起。有关更多信息，请参见处理 SQL Server 的实例和版本。

在准备删除早期版本时，可以使用"控制面板"中的"添加/删除程序"选项，或者从"开始"菜单运行卸载程序。

删除 SQL Server 7,0

  • 在"开始"菜单上，在 SQL Server 7.0 组中单击"卸载 SQL Server 7.0"。

删除 SQL Server 6.5

  • 在"开始"菜单上，在 SQL Server 6.5 组中单击"删除 SQL Server 6.5"。


删除 SQL Server 2000

可以通过以下方法删除 Microsoft® SQL Server™ 2000 的实例：

  • 运行 SQL Server 2000 安装程序并选择"卸载"选项。

  • 运行"控制面板"中的"添加/删除程序"应用程序。

每个命名的 SQL Server 2000 实例必须单独删除。不能删除 SQL Server 2000 的个别组件。若要删除组件，必须删除整个实例。

重要 删除 SQL Server 2000 之前，退出所有应用程序，包括 Windows NT 事件查看器、注册表编辑器和所有的 SQL Server 应用程序以及所有依赖于 SQL Server 的应用程序。

使用控制面板删除 SQL Server

Windows

Windows

使用安装程序删除 SQL Server 实例

SQL 安装程序

SQL 安装程序

请参见

现有安装选项


开放式数据服务（级别 3）

下表列出的开放式数据服务网关函数、宏和事件不再受支持。

函数/宏名称
srv_ackattention
srv_config
srv_config_alloc
srv_errhandle
srv_event
srv_eventdata
srv_getconfig
srv_handle
srv_init
srv_langcpy
srv_langlen
srv_langptr
srv_log
srv_post_handle
srv_pre_handle
srv_run
srv_setevent
srv_terminatethread


DBCC（级别 3）
SQL Server 6.x | SQL Server 2000
DBCC NEWALLOC 检查相应的扩展盘区结构的数据页和索引页。 | 支持 DBCC NEWALLOC 仅为保持向后兼容性，并与 DBCC CHECKALLOC 相同。 考虑删除所有对 DBCC NEWALLOC 的引用，并替换为对 DBCC CHECKALLOC 的引用。
DBCC ROWLOCK 动态地启用表上的插入行锁定 (IRL) 操作。 | 行级锁定为自动。支持 DBCC ROWLOCK 仅为保持向后兼容性。 考虑删除所有对 DBCC ROWLOCK 的引用。
DBCC TEXTALL 在数据库中选定含有 text 或 image 列的表，并在这些表上运行 DBCC TEXTALLOC。 | DBCC CHECKDB 在数据库中检查 text、ntext 和 image 列的一致性。支持 DBCC TEXTALL 仅为保持向后兼容性。 考虑删除所有对 DBCC TEXTALL 的引用，并替换为对 DBCC CHECKDB 的引用。
DBCC TEXTALLOC 检查表的 text 或 image 列的分配。 | DBCC CHECKTABLE 检查指定表的数据、索引、text、ntext 和 image 页的完整性。支持 DBCC TEXTALLOC 仅为保持向后兼容性。 考虑删除所有对 DBCC TEXTALLOC 的引用，并替换为对 DBCC CHECKTABLE 的引用。
DBCC DBREPAIR 除去指定的、通常已损坏的数据库。 | 使用 DROP DATABASE 除去或删除 SQL Server 数据库。使用 DBCC DBREPAIR 仅为保持向后兼容性。 考虑删除所有对 DBCC DBREPAIR 的引用，并替换为对 DROP DATABASE 的引用。


触发器和系统存储过程（系统）（级别 4）
SQL Server 6.x | SQL Server 2000
当 inserted 或 deleted 表用于 CREATE TRIGGER 语句中时，这两个表中的 text 或 image 列返回的值不是始终正确的。 | 在 CREATE TRIGGER 语句中，对 inserted 或 deleted 表的 text 或 image 列的引用返回 NULL 值。 与 SQL Server 早期版本相比，应该有不同的结果。删除 CREATE TRIGGER 语句中所有对 inserted 或 deleted 表的 text 或 image 列的引用。
不支持触发器直接递归（触发器调用自身的能力），但允许间接递归。 | 使用 ALTER DATABASE 的 RECURSIVE_TRIGGERS 选项启用触发器直接递归。使用 nested triggers 配置选项启用间接递归。 与 SQL Server 早期版本相比，应该有不同的结果。
当双方初始化后，在 4.x 版和 6.x 版的服务器间存在通讯。 | 4.x 或 6.x 版的服务器可与 SQL Server 2000 服务器通讯。但是，不支持从 SQL Server 2000 服务器到 4.x 服务器的服务器间通讯。 与 SQL Server 早期版本相比，应该有不同的结果。将 4.x 服务器升级为 SQL Server 6.x 或 SQL Server 2000。
用于用户定义表的 sp_tableoption 设置选项值，包括插入行级锁定 (IRL) 的使用。 | 不再支持 sp_tableoption 中的插入行级锁定 (IRL) 参数，已替换为完全行级锁定。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有通过 sp_tableoption 实现的对 IRL 操作的引用，并改用 SQL Server 2000 的内置行级锁定。调用 sp_tableoption 的应用程序应继续正常工作；将忽略 IRL 参数。
xp_readmail 的 @message 参数为 varchar(255)。xp_sendmail 的 @message 和 @query 参数为 varchar(255)。 | @message 和 @query 参数现在为 varchar(8000)。 当使用 xp_readmail 的 @message 参数和 xp_sendmail 的 @message 和 @query 参数时，与 SQL Server 早期版本相比，应有不同的行为。


实用工具（级别 4）
SQL Server 6.x | SQL Server 2000
isql/w 使用 DB-Library。与 ANSI_WARNINGS 一样，SQL-92 设置在默认情况下设置为关。 | SQL 查询分析器使用 SQL Server ODBC 驱动程序，该驱动程序在默认情况下将这些 SQL-92 选项设置为开：SET ANSI_WARNINGS、SET ANSI_PADDING 和 SET ANSI_NULLS。任何返回的错误都采用 ODBC 错误格式，而不是 DB-Library 错误格式。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。与 isql 实用工具或 SQL Server 6.5 版 isql/w 相比，SQL 查询分析器应有不同的结果。
isql/w 使用 ANSI-ISO 代码页。当使用 OEM 代码页 850 或 437 连接到服务器时，必须显式启用 ANSI to OEM character translation。否则，使用扩展字符的数据将显示为乱码。 | SQL Server 2000 ODBC 驱动程序自动检测是否需要转换，并创建自动的 ANSI 到 OEM 的转换。另外，当 SQL 查询分析器连接时，将启用自动检测。 当在 SQL 查询分析器中使用国际或扩展字符时，应有不同的行为。

有关 SQL 查询分析器改动的其它信息，请参见 SQL Server 2000 和 SQL Server 7.0 版中的"SQL 查询分析器中的默认连接选项设置"讨论。


配置（级别 4）

管理脚本可能已使用这些配置选项。有关配置选项的更多信息，请参见 sp_configure 和设置配置选项。

SQL Server 6.x | SQL Server 2000
管理脚本可能已使用非高级选项的 media retention 来设置每个备份媒体在用于数据库或事务日志转储后保持的天数。 | media retention 现在是高级选项。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。只有启用 sp_configure 的高级配置选项时，才显示 media retention 配置选项。


DATEPART 和 SET DATEFIRST（级别 4）
SQL Server 6.x | SQL Server 2000
DATEPART 函数的 SET DATEFIRST 设置对"周"日期部分无效。 | "周"日期部分可能给出与 Microsoft® SQL Server™ 早期版本不同的值。但是，仅当 SET DATEFIRST 设置不为默认值（美国英语的默认值为 7）时才有差别。 如果 DATEPART 函数提供的年有 366 天，且该年的第一周开始于周六，年结束于从周日开始算起的周的第一天，则返回的周值为 54。 当使用 ISO 8601 标准时，周值总是从 1 到 53，这保证年的第一周至少有 4 天。 与 SQL Server 早期版本相比，应该有不同的结果。使用 SET DATEFIRST 的默认值，这样 DATEPART 将为"周"日期部分返回预期的结果。否则，DATEPART 值将比预期值小 1。


重建 master 数据库（级别 4）
SQL Server 6.x | SQL Server 2000
执行 SQL Server 安装程序会重建 master 数据库。 | 不再支持。SQL Server 包括重建主控 (rebuildm) 实用工具。 使用位于 x:\Program Files\Microsoft SQL Server\80\Tools\Binn 文件夹中的重建主控 (rebuildm) 实用工具重建 master 数据库。


系统存储过程（扩展）（级别 3）
SQL Server 6.x | SQL Server 2000
xp_grantlogin 和 xp_revokelogin 授予或废除 SQL Server 访问基于 Windows NT 的组或用户的权力。 | 使用 sp_grantlogin 和 sp_revokelogin，即使支持 xp_grantlogin 和 xp_revokelogin 仅为保持向后兼容性。 考虑删除所有对 xp_grantlogin 和 xp_revokelogin 的引用，并替换为对 sp_grantlogin 和 sp_revokelogin 的引用。


安全性（级别 4）
SQL Server 6.x | SQL Server 2000
SYSTEM_USER niladic 函数对于所有 Microsoft Windows NT® 登录都返回空值。 | 如果 Windows 身份验证与 SYSTEM_USER 函数一起使用，则返回适当的域名和登录名。 当一起使用 SYSTEM_USER 和 Windows 身份验证时，与早期版本相比，应该有不同的结果。


数据库选项（级别 3）
SQL Server 6.x | SQL Server 2000
sp_dboption 的 publish 选项在数据库中启用或禁用发布。 | sp_replicationdboption 可用于在数据库中启用或禁用发布。 删除所有对 sp_dboption publish 的引用，并替换为对 sp_replicationdboption 的引用。


查询性能（级别 3）
SQL Server 6.x | SQL Server 2000
查询可包括无性能含义的服务器用户 ID (SUID)，如下表所示。 | 使用 SUID 的查询继续运行，并产生与 SQL Server 早期版本中相同的结果。但对于新的安全性设计，SUID 不再是本机模式，因此存在重大的性能损失。 考虑删除所有对 SUID 的引用，并替换为对 SID 的引用（如下表所示），以免查询性能降低。

SQL Server 6.x | 替换为 SQL Server 2000 SID
SUSER_ID | SUSER_SID，返回 SID
SUSER_NAME | SUSER_SNAME，接受 SID 作为输入
syslogins.suid | syslogins .sid
sysdatabases.suid | sysdatabases .sid
sysremotelogins.suid | sysremotelogins .sid
sysusers.suid | sysusers .sid
sysalternates.suid | sysusers .isaliased
sysalternates.altsuid | sysusers .isaliased

示例

A. 使用 SID 和 SUID显示在 sysusers 中的用户登录名

下例显示 SQL Server 6.x 查询，该查询显示 sysusers 中所有用户的登录名：

SELECT L.name
FROM master.dbo.syslogins L, sysusers U
WHERE L.suid = U.suid
-- Or
SELECT suser_name(suid) AS name
FROM sysusers

以下是重写的、使用 SID 而非 SUID 的查询：

SELECT L.loginname
FROM master.dbo.syslogins L, sysusers U
WHERE L.sid = U.sid
-- Or
SELECT suser_sname(sid) AS name
FROM sysusers


SELECT（级别 3）
SQL Server 6.x | SQL Server 2000
如果有一个非聚集索引匹配 ORDER BY 子句，则 FASTFIRSTROW 优化程序提示导致优化程序使用非聚集索引。 | OPTION (FAST n) 查询提示替换 FASTFIRSTROW。但是，保留 FASTFIRSTROW 仅为保持向后兼容性。 考虑删除所有对 SELECT 语句中的 FASTFIRSTROW 的引用，并替换为对 OPTION (FAST n) 的引用。
INDEX = 语法指定用于表提示的一个或多个索引。 | 仅为保持向后兼容性。 考虑删除所有对 INDEX = 的引用，并替换为（当使用多个索引提示时）对 INDEX(index, index...) 的引用，如 SELECT 中所示。


UPDATE（级别 4）
SQL Server 6.x SQL Server 2000
在 Microsoft® SQL Server™ 6.0 版中，允许下面的 UPDATE 语句对同一个基表使用两个不同的表别名：
CREATE TABLE t1 (c1 int)
GO
INSERT t1 VALUES (1)
INSERT t1 VALUES (2)
GO
UPDATE t1
SET c1 = 50
FROM t1 a1, t1 a2
WHERE a1.c1 = 1 AND
a2.c1 = 2
GO
已不再支持该语法。在 UPDATE 关键字后使用别名而非表名。UPDATE 语句将重写为：
UPDATE a1
SET c1 = 50
FROM t1 a1, t1 a2
WHERE a1.c1 = 1 AND
a2.c1 = 2

与 SQL Server 6.0 版相比，应有不同的行为。
下面具有表和别名引用的 UPDATE 语句有效。
USE pubs
GO
UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date =
(SELECT MAX(sales.ord_date) FROM sales)
GO
在 UPDATE 关键字后指定的别名必须匹配 SET 关键字后指定的别名。如果没有此更改，要使 UPDATE 语句的功能与 6.x 版相同，必须将兼容级别设置改为 65。

以下为重写后的同一 UPDATE 语句：

USE pubs
GO
UPDATE t
    SET t.ytd_sales = t.ytd_sales + s.qty
        FROM titles t, sales s
           WHERE t.title_id = s.title_id
            AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
GO

当在 UPDATE 语句的 UPDATE 关键字和 UPDATE 语句的 SET 关键字后使用不同的表引用时，与 SQL Server 6.x 版相比，应有不同的行为。


ODBC（级别 4）
SQL Server 6.x | SQL Server 2000
在 2.65 版 ODBC 驱动程序中，以秒为单位指定长时间运行查询间隔，而长时间运行查询间隔通过用驱动程序专用连接选项 SQL_COPT_SS_PERF_QUERY_INTERVAL 调用 SQLSetConnectOption 来指定。 | 以毫秒为单位指定 SQL_COPT_SS_PERF _QUERY_INTERVAL 值。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。将 SQL_COPT_SS_PERF_QUERY_INTERVAL 值乘以 1,000，使秒数转换为毫秒数。有关 SQL_COPT_SS_PERF_QUERY_INTERVAL 的更多信息，请参见 SQLSetConnectAttr。
对于 ODBC SQL Server 驱动程序的早期版本，来自连续的 PRINT、RAISERROR、DBCC 或类似语句（在批处理或存储过程中）的消息将组合到单个结果集中。 | 对于 ODBC SQL Server 3.51 版驱动程序（包含在 SQL Server 2000 中），来自连续的 PRINT、RAISERROR、DBCC 或类似语句（在批处理或存储过程中）的消息将为每个语句返回单独的结果集。 与 SQL Server 早期版本相比，应该有不同的结果。调用 SQLMoreResults 以处理来自每个语句的结果集。
当（使用 SQLExecute、SQLExecDirect 或 SQLParamData）执行的搜索 UPDATE 或 DELETE 语句未影响任何行时，ODBC SQL Server 驱动程序的早期版本返回 SQL_SUCCESS。SQLRowCount 返回 0。 | 当 ODBC 3.x 版应用程序使用此次发行的版本中包含的 ODBC SQL Server 3.5 版驱动程序时，如果（使用 SQLExecute、SQLExecDirect 或 SQLParamData）执行的搜索 UPDATE 或 DELETE 语句未影响任何行，则返回 SQL_NO_DATA。SQLRowCount 仍然返回 0。 与 SQL Server 早期版本相比，应该有不同的结果。正确处理 SQL_NO_DATA。


数据类型（级别 4）
SQL Server 6.x | SQL Server 2000
根据存储值的精度，decimal 和 numeric 数据类型可使用 2 到 17 个字节间的任何字节数来存储值。 | numeric 和 decimal 现在使用 5、9、13 或 17 个存储字节。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。确保使用 numeric 或 decimal 数据类型的数据库有足够的存储空间容纳更改后的存储字节数。
结果太小而无法显示，称为浮点下溢，对于某些数学运算符和函数返回不一致的结果。 | SQL Server 现在对于所有浮点下溢情况不返回错误信息，而返回 0.0。 因为类似 float 和 real 数据类型的浮点数具有固定的大小，所以近似数字数据具有内在精度和取值范围。在浮点下溢的情况下，将返回结果 0.0，而不显示错误信息。例如，2 的 –100.0 次幂的数学计算将返回结果 0.0。 与 SQL Server 早期版本相比，应该有不同的结果。数学函数或运算符得到的浮点下溢结果应不同。有关更多信息，请参见使用数学函数。 +（加） -（减） *（乘） /（除） ATN2 AVG CONVERT EXP POWER RADIANS SUM
第二个为负的参数若等于 ROUND 表达式中的数字个数，则对于 integer、float 和 money 数据类型返回 0 值。如果第二个参数为负数且小于 ROUND 表达式中的数字个数，则 ROUND 返回将最右端的数字四舍五入到 0 的值。 | 如果 ROUND 函数中的第二个参数为负数（对于所有数字数据类型）且小于表达式中的数字个数，则 SQL Server 返回四舍五入到下一位数的值。 如果第二个参数为负数，与 SQL Server 早期版本相比，ROUND 函数的结果应不同。
当添加或减少日期值时，DATEADD 和 DATEDIFF 函数返回一个日期值。 | datetime 和 smalldatetime 支持使用 +（加）和 -（减）运算符进行直接的日期值加减运算。 对于简单的日期算术，也可使用加（+（加））或减（-（减））代替 DATEADD 和 DATEDIFF。


复制（级别 4）
SQL Server 6.x | SQL Server 2000
订阅发布中的一个或多个项目可通过 SQL Server 企业管理器或适当的系统存储过程创建。 | SQL Server 企业管理器不再允许订阅一个或多个项目。订阅发布中的一个或多个项目仅通过使用适当的复制系统存储过程实现。 与 SQL Server 早期版本相比，应该有不同的结果。使用复制系统存储过程订阅发布中的一个或多个项目。当使用 SQL Server 企业管理器时，必须订阅整个发布。

SQL Server 2000 中的复制与 SQL Server 6.5 版服务器中的复制不同。另外，当复制拓扑在用户界面中创建后,SQL Server 2000 提供增强的脚本能力。该增强脚本使得可以用最少的时间和精力实现大量的复制。


重建注册表（级别 4）

说明 在 Microsoft® SQL Server™ 2000 中，此实用工具由安装选项 Registry Rebuild 替换。

SQL Server 7.0 以前的版本 SQL Server 7.0
执行以下 SQL Server 安装程序语句重建注册表：
setup/t RegistryRebuild = On.
不再支持。相反，使用安装程序重建注册表。


函数（级别 4）
SQL Server 6.x | SQL Server 2000
@@DBTS 全局变量随时递增，数据库中的任何页可以任何方式修改。 | 由 @@DBTS 返回的值仅当修改包含 timestamp 列的行时更改。 当使用 @@DBTS 时，与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。


CREATE PROCEDURE（级别 4）
SQL Server 6.x | SQL Server 2000
如果 CREATE PROCEDURE 语句包含的 CREATE TABLE 或 SELECT INTO 语句创建的临时表与 CREATE PROCEDURE 语句执行时已经存在的临时表同名，则 CREATE PROCEDURE 语句失败。 | CREATE PROCEDURE 语句成功。 重新编码所有依赖早期行为的逻辑。


安全性（级别 3）
SQL Server 6.x | SQL Server 2000
GRANT 语句的 ON {table | view} (column [,...n]) 语法将指定的权限指派给指定表或视图中的给定列。 | 支持 GRANT 语句的 ON {table | view} (column [,...n]) 语法仅为保持向后兼容性。 考虑对对象权限使用 SQL-92 标准 GRANT语法，并在 ON 子句前放置列列表。
术语"集成安全机制"允许 SQL Server 使用 Windows NT 身份验证机制验证所有连接的登录。标准安全机制使用 SQL Server 自身的登录验证程序验证所有连接。混合安全机制允许登录请求使用集成或标准安全机制进行验证。 | 术语"Windows 身份验证"和"混合模式"分别替换集成安全机制和混合安全机制。标准安全机制不再存在。 考虑使用术语"Windows 身份验证"和"混合模式"而非集成安全机制和混合安全机制。不要引用标准安全机制。有关安全模式的更多信息，请参见身份验证。
SETUSER 语句允许数据库所有者模仿其他用户。 | 在 Microsoft® SQL Server™ 2000 中包含 SETUSER 仅为保持向后兼容性，不推荐使用该语句。以后的 SQL Server 版本可能不支持该语句。 考虑删除所有对 SETUSER的引用。


备份和还原（级别 4）
SQL Server 6.x | SQL Server 2000
LOAD HEADERONLY 语句从数据库转储中检索详细描述首部信息的结果集。 | 结果集已改变。与 SQL Server 早期版本中的 LOAD HEADERONLY 相比，来自 RESTORE HEADERONLY 的应该是一个不同的结果集。有关 RESTORE HEADERONLY 的更多信息，请参见 RESTORE HEADERONLY。


DELETE 和 SELECT（级别 4）

安装 SQL Server
SELECT（级别 4）
SQL Server 6.x | SQL Server 2000
在 SELECT 语句中使用 *= 和 =* 运算符（分别表示左向外联接和右向外联接）分别产生左向外联接和右向外联接。 | 首选 LEFT OUTER JOIN 和 RIGHT OUTER JOIN 的 SQL-92 标准语法。但是，现在仍然支持 Microsoft® SQL Server™ 早期版本中支持的联接运算符。 建议删除所有 SELECT 语句的 FROM 子句中对 *=（左向外联接）和 =*（右向外联接）运算符的引用，并替换为对 SQL-92 标准语法 RIGHT OUTER JOIN 和 LEFT OUTER JOIN 的引用。以后的 SQL Server 版本将只支持 SQL-92 标准语法。


设备（级别 3）

Microsoft® SQL Server™ 2000 的数据库构架与 SQL Server 6.x 的数据库构架不同。在 SQL Server 2000 中：

  • 操作系统文件替换数据库设备。

  • 数据文件和事务日志不能共存在同一个操作系统文件上。

  • 单个操作系统文件不能由多个数据库共享。

有关数据库构架的更多信息，请参见 SQL Server 构架概述。

SQL Server 6.x | SQL Server 2000
DISK INIT 创建数据库或事务日志设备。若 DISK INIT 跟在 CREATE DATABASE 或 ALTER DATABASE 语句后，SQL Server 使用指定的设备存储指定的数据库或事务日志。 | CREATE DATABASE 语句的语法和 ALTER DATABASE 语句的语法都允许创建单独的数据和日志文件。CREATE DATABASE 和 ALTER DATABASE 都在单个步骤中创建操作系统文件和数据库（如果 LOG ON 子句未指定任何项目，则自动生成日志文件）。 考虑删除所有对 DISK INIT 的引用，并替换为对 CREATE DATABASE 或 ALTER DATABASE 的引用。 DISK INIT 在 SQL Server 2000 中得到有限的支持；现有的脚本只要不使数据和日志共享相同的数据文件即可运行。
当 sysdevices 中缺少设备条目时，DISK REINIT 将设备条目还原到适当的系统表中。 | 已删除；没有替代项。 考虑删除所有对 DISK REINIT 的引用。
sp_logdevice 将 syslogs（包含事务日志）置于单独的数据库设备上。若要在已包含一段日志的数据库中另添加一段日志，则需在 DISK INIT 后执行 sp_logdevice。 | 已删除。CREATE DATABASE 语句在新操作系统文件上创建日志文件。 考虑删除所有对 sp_logdevice 的引用，并替换为对 CREATE DATABASE 的引用。在 CREATE DATABASE 中使用 LOG ON 子句的 SQL Server 6.x 版脚本将按预期执行。不在 CREATE DATABASE 中使用 LOG ON 子句的脚本将自动生成日志文件。
使用 DISK INIT 和 CREATE DATABASE 创建的设备只能通过使用 sp_dropdevice 除去。 | 在 CREATE DATABASE 前不带 DISK INIT 创建的数据库可用 DROP DATABASE 除去，否则使用 sp_dropdevice。 当使用后面带有 CREATE DATABASE 的 DISK INIT 时，请使用 sp_dropdevice。

示例
A. 同时使用 DISK INIT 和 CREATE DATABASE 语法

下例使用 DISK INIT 和 CREATE DATABASE，在 SQL Server 6.5 版和 SQL Server 2000 中都有效：

DISK INIT name = 'testdb_data',
   physname = 'c:\testdb_data.dat',
   vdevno = 9,
   size = 10240
DISK INIT name = 'testdb_log',
   physname = 'c:\testdb_log.dat',
   vdevno = 8,
   size = 10240
CREATE DATABASE testdb
   ON testdb_data = 10
   LOG ON  testdb_log = 10
GO
B. 在 SQL Server 2000 中使用 sp_logdevice 和 CREATE DATABASE 失败

在 SQL Server 早期版本中，此脚本创建了一个 20 MB 的数据库，由两个名为 testdb_data 和 testdb_log 的文件组成。此脚本还通过使用 sp_logdevice 将事务日志移动到 testdb_log 设备中。

说明 类似这样的脚本通常由 SQL Server 6.5 的 sp_help_revdatabase 系统存储过程创建，该过程使用 sp_logdevice 确保为数据库还原正确的设备布局。因为 SQL Server 2000 在还原数据库时创建数据库，所以不再需要这样的脚本。

-- SQL Server 6.x example.
DISK INIT name = 'testdb_data',
   physname = 'c:\testdb_data.dat',
   vdevno = 9,
   size = 10240
DISK INIT name = 'testdb_log',
   physname = 'c:\testdb_log.dat',
   vdevno = 8,
   size = 10240
CREATE DATABASE testdb on testdb_data = 10, testdb_log = 10
-- Use sp_logdevice to move the log to the testdb_log device.
EXEC sp_logdevice testdb, testdb_log

在 SQL Server 2000 中，上述脚本的运行不同于在 SQL Server 6.x 版中的运行，因为 sp_logdevice 已不存在。

在 SQL Server 2000 中，该脚本会创建一个 20 MB 的数据库，由两个名为 testdb_data 和 testdb_log 的文件组成。另外，SQL Server 自动生成日志文件，其大小为数据库大小的 25%。在以下脚本中（使用早期创建的设备），将自动生成一个 10 MB 的日志文件：

CREATE DATABASE testdb on testdb_data = 10, testdb_log = 10
C. 仅使用 CREATE DATABASE 语法

使用 SQL Server 2000 CREATE DATABASE 语法，上例中的数据库将按如下方法创建：

CREATE DATABASE testdb ON (name = 'testdb_data',
   filename = 'd:\testdb_data.dat', size = 10)
   LOG ON (name = 'testdb_log', filename = 'd:\testdb_log.dat',
   size = 10)


SET SHOWPLAN（级别 3）
SQL Server 6.x | SQL Server 2000
SET SHOWPLAN 语句通过 ODBC 中的 SQLGetDiagRec，或通过 DB-Library 应用程序中的消息处理程序，将输出作为信息消息返回。 | 不再支持 SET SHOWPLAN 语句。该语句已替换为 SET SHOWPLAN_TEXT 和 SET SHOWPLAN_ALL。SET SHOWPLAN_TEXT 和 SET SHOWPLAN_ALL 的输出不作为信息消息返回，只作为结果集返回。 考虑删除所有对 SET SHOWPLAN 的引用，并替换为对 SET SHOWPLAN_TEXT（显示可读文本）或 SET SHOWPLAN_ALL（显示输出，该输出可由应用程序生成显示计划输出报表，从而更容易分析）的引用。应用程序需要将输出作为结果集的一部分处理，而不是作为通过 ODBC SQLGetDiagRec 函数或 DB-Library 消息处理程序返回的消息。


备份和还原（级别 3）
SQL Server 6.x | SQL Server 2000
DUMP 语句创建数据库或事务日志备份（转储）。 | DUMP DATABASE 和 DUMP TRANSACTION 语句与 BACKUP DATABASE 和 BACKUP LOG 语句同义。在以后的版本中可能会取消对 DUMP DATABASE 和 DUMP TRANSACTION 语句的支持。 考虑删除所有对 DUMP DATABASE 的引用，并替换为对 BACKUP DATABASE 的引用。考虑删除所有对 DUMP TRANSACTION 的引用，并替换为对 BACKUP LOG 的引用。
LOAD 语句还原或装载数据库或事务日志备份（转储）。 | LOAD DATABASE 和 LOAD TRANSACTION 语句与 RESTORE DATABASE 和 RESTORE LOG 语句同义。在以后的版本中可能会取消对 LOAD DATABASE 和 LOAD TRANSACTION 语句的支持。 考虑删除所有对 LOAD DATABASE 的引用，并替换为对 RESTORE DATABASE 的引用。考虑删除所有对 LOAD TRANSACTION 的引用，并替换为对 RESTORE LOG 的引用。有关 RESTORE DATABASE 的更多信息，请参见 RESTORE。
CREATE DATABASE ...FOR LOAD 语句的语法在数据库从备份还原前创建目的数据库，并防止任何人在 CREATE DATABASE、ALTER DATABASE 和 LOAD 语句间使用该数据库。 | 支持 CREATE DATABASE ...FOR LOAD 语法仅为保持向后兼容性。但是因为 SQL Server 现在在还原操作中创建目的数据库，所以建议不要在还原操作执行前创建目的数据库。 不要在还原数据库前创建该数据库。


DELETE 和 SELECT（级别 4）
SQL Server 6.x SQL Server 2000
在 Microsoft® SQL Server™ 6.0 版中，DELETE 或 SELECT 语句的 FROM 子句中重复的表名将导致 SQL Server 将两个表引用作为同一个表对待。在下面的 SELECT 示例中，SQL Server 废弃对第二个 authors 表的引用：
USE pubs
GO
SELECT *
FROM authors, authors
GO

但是，如果在 DELETE 或 SELECT 的 FROM 子句中指定的表名不同，SQL Server 6.0 版将两个表引用作为不同的表对待，如下面的 SELECT 示例所示：

USE pubs
GO
SELECT *
FROM pubs..authors, pubs.dbo.authors
GO
 在 DELETE 或 SELECT 语句的 FROM 子句中，重复的表名将在 SQL Server 中产生错误。使用别名重写语句。以下为 SELECT 示例：
SELECT *
FROM pubs..authors AS a1, pubs.dbo.authors AS a2

USE pubs
SELECT *
FROM authors AS au1, authors AS au2

与 SQL Server 6.0 版相比，应有不同的结果。当引用同一个表的多个实例时，重写 DELETE 和 SELECT 语句以在 FROM 子句中使用别名。


设备（级别 4）
SQL Server 6.x | SQL Server 2000
DISK RESIZE 语句更改数据库设备的大小。 | 支持 DISK RESIZE 语句，但在以后的版本中可能不再支持。另外，DISK RESIZE 语句不更改数据库的大小。而是使用 ALTER DATABASE。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。使用 ALTER DATABASE 语句的 MODIFY FILE 子句更改数据库的大小。


系统存储过程（系统）（级别 3）
SQL Server 6.x | SQL Server 2000
作业管理称为任务管理，而且一些系统存储过程允许系统管理员创建和管理任务。 | 不再记录任务管理系统存储过程，包括该过程仅为保持向后兼容性。 即使 Microsoft® SQL Server™ 2000 支持任务管理系统存储过程（sp_addtask、sp_droptask、sp_helptask、sp_reassigntask 和 sp_updatetask）调度和管理 SQL Server 作业，仍请考虑使用 SQL Server 企业管理器或下表所列的与作业相关的系统存储过程来管理作业。

SQL Server 6.x 列中列出的与任务相关的存储过程已替换为 SQL Server 2000 列中相应的与作业相关的存储过程。

SQL Server 6.x | SQL Server 2000
sp_addtask | sp_add_job sp_add_jobstep sp_add_jobschedule sp_start_job
sp_droptask | sp_delete_job sp_delete_jobstep sp_delete_jobschedule
sp_helptask | sp_help_jobhistory sp_help_jobschedule sp_help_jobstep
sp_reassigntask | sp_purge_jobhistory sp_stop_job
sp_updatetask | sp_update_job sp_update_jobstep sp_update_jobschedule


DBCC（级别 4）
SQL Server 6.x | SQL Server 2000
每个 DBCC 语句有特定的输出格式。 | 很多 DBCC 语句的输出格式已更改。 与 Microsoft® SQL Server™ 早期版本相比，应该有不同的结果。
DBCC PERFMON 和 DBCC SQLPERF 语句记录 SQL Server 性能统计信息，用于研究 SQL Server 的性能。 | 不再记录。这些语句在以后的 SQL Server 版本中可能会更改。 使用 Windows 2000 系统监视器中的 Windows NT 4.0 性能监视器监视 SQL Server 的性能计数器。有关更多信息，请参见用 Windows 性能监视器进行监视。


别名（级别 4）
SQL Server 6.x | SQL Server 2000
别名允许用户临时借用数据库中其他用户的标识，并作为该用户执行操作。例如，数据库所有者可化名为其他用户，如果该用户在度假，则可作为该用户执行操作。 | 角色已替换别名。因为用户可以同时属于多个角色，所以不再需要借用其他用户的标识。属于相同角色的用户自动具有相同的权限，假定权限仅应用于角色级别，而不是用户级别。 与 SQL Server 早期版本相比，应该有不同的结果。使用角色代替别名。有关数据库角色的更多信息，请参见管理权限。


DBCS 字符串比较（级别 4）
SQL Server 6.x | SQL Server 2000
当比较 DBCS 空格字符时，Unicode A140 空格字符 (U-A140) 与 Unicode 0020 (U-0020) 空格字符不同。 | 比较中涉及的 Unicode A140 空格字符 (U-A140) 现在等同于 Unicode 0020 (U-0020) 空格字符。 当比较 DBCS 空格字符时，与 SQL Server 早期版本相比，应有不同的结果。


全局变量（级别 4）
SQL Server 7.0 以前的版本 | SQL Server 7.0
全局变量是由系统提供且预先声明的变量，通过在名称前保留两个 (@@) 符号区别于局部变量。 | Transact-SQL 全局变量为函数形式，现在作为函数引用。 有关更多信息，请参见函数。


DB-Library（级别 1）
SQL Server 6.x | SQL Server 2000
DB-Library 的两阶段提交特殊库管理跨两个或多个服务器分布的事务。 | 不再支持 DB-Library 两阶段提交。使用 Microsoft 分布式事务处理协调器 (MS DTC) 完成两个服务器上的同时更新。删除所有对 DB-Library 两阶段提交的引用。
DB-Library 应用程序可在 Microsoft® Visual Basic® 中开发。 | 不再支持 DB-Library for Visual Basic 的开发库。现有的 DB-Library for Visual Basic 应用程序的将对 SQL Server 2000 运行，但是必须使用 SQL Server 6.5 的开发库对其进行维护。所有用于访问 SQL Server 的新编写的 Visual Basic 应用程序应使用 Visual Basic 数据 API，例如，ActiveX 数据对象 (ADO) 和远程数据对象 (RDO)。


SET SHOWPLAN（级别 1）
SQL Server 6.x | SQL Server 2000
除非 SET NOEXEC 设置启用，否则 SET SHOWPLAN 为查询生成处理计划描述，并立刻对其进行处理。 | SET SHOWPLAN 已替换为 SET SHOWPLAN_ALL 和 SET SHOWPLAN_TEXT。SET SHOWPLAN_ALL 和 SET SHOWPLAN_TEXT 语句仅返回查询或语句执行计划信息，并不执行查询或语句。若要执行查询或语句，请将相应的显示计划语句设置为 OFF。然后将执行查询或语句。 删除所有对 SET SHOWPLAN ON 或 SET SHOWPLAN OFF 的引用，并替换为对 SET SHOWPLAN_ALL ON、SET SHOWPLAN_TEXT ON、SET SHOWPLAN_ALL OFF 或 SET SHOWPLAN_TEXT OFF 的引用。与 SQL Server 早期版本比较，应该有不同的结果。


大容量复制（级别 2）
SQL Server 6.x SQL Server 2000
bcp 实用工具（使用 DB-Library）可导入字符模式数据文件中的 datetime 或 smalldatetime 值，该数据文件使用：
  • DB-Library 使用的默认格式（mmm dd yyy hh:mmXX，其中 XX 为 A.M. 或 P.M.）。

  • 除 ODBC 格式外，任何由 dbconvert 支持的格式。

bcp 通过使用默认的 DB_Library 格式导出具有 datetime 和 smalldatetime 值的字符模式数据文件。

 bcp 实用工具（使用ODBC）可导入字符模式数据文件中的 datetime 或 smalldatetime 值，该数据文件使用：
  • DB-Library 使用的默认格式。

  • ODBC 使用的格式 (yyyy-mm-dd hh:mm:ss[.f...])。

但是，bcp 不使用 dbconvert 支持的其它格式。

bcp 用 ODBC 默认格式导出 datetime 和 smalldatetime 值。

与 SQL Server 早期版本相比，应该有不同的结果。若要在 SQL Server 6.x 和 SQL Server 2000 服务器间大容量复制字符模式的数据，请使用相同的 bcp 版本（SQL Server 6.x 或 SQL Server 2000）导入和导出数据。

若要将数据从 SQL Server 2000 服务器导出到字符模式的数据文件中，并且以后使用 DB-Library 大容量复制应用程序导入该数据，请使用 bcp 的 SQL Server 6.x 版。

对于在字符模式数据文件中现有的 datetime 或 smalldatetime 值，这些值为不同于 DB-Library 默认的格式：

  • 将这些值更改为 DB-Library 默认格式，以便继续使用 SQL Server 6.x 和 SQL Server 2000 bcp。

  • 将这些值更改为 ODBC 格式以便用于 SQL Server 2000 bcp。
bcp 使用数字分组符号（例如，当使用 SQL Server 的美国版、Microsoft Windows NT 的美国版和美国设置时为逗号）和小数点后两位数字将 money 值导出到字符模式数据文件中。 bcp 将 money 值导出到字符模式的数据文件中，不带有数字分组符号，但在小数点后带有四位数字。

与 SQL Server 早期版本相比，应该有不同的结果。

若要在 SQL Server 2000 中读取由 6.x 版 DB-Library bcp 创建的字符文件，请使用 -V 开关。有关更多信息，请参见 bcp 实用工具。


索引（级别 1）
SQL Server 6.x | SQL Server 2000
CREATE INDEX 的 SORTED_DATA_REORG 子句消除创建聚集索引时执行的排序。 | 由 CREATE INDEX 的 DROP_EXISTING 子句替换。删除所有对 CREATE INDEX 的 SORTED_DATA_REORG 子句的引用，并替换为对 DROP_EXISTING 的引用。
CREATE INDEX 的 SORTED_DATA 子句消除当聚集索引创建时执行的排序，并物理重组数据。 | 已删除，不再可用。删除所有对 CREATE INDEX 的 SORTED_DATA 子句的引用。
bcp 可将已排序的数据文件导入 SQL Server 表中。在已排序的表上创建聚集索引可通过使用 CREATE INDEX 的 SORTED_DATA 子句得以优化。SORTED_DATA 子句强制 SQL Server 不进行排序或重新组织以前已排序的表。 | SQL Server 返回错误信息，声明 CREATE INDEX 的 SORTED_DATA 子句已忽略，并且不再获得支持。删除所有对 CREATE INDEX 的 SORTED_DATA 子句的引用。考虑在使用 bcp 导入数据前创建聚集索引。bcp 使用改进的索引维护策略使得导入带有先前存在的索引的数据时比早期版本更快速，并且避免在导入后重新排序数据。
CREATE INDEX 语句的 ALLOW_DUP_ROW 子句和 IGNORE_DUP_ROW 子句允许数据更新到具有唯一索引的表中，而不必首先筛选出重复数据。 | 不再支持。使用 CREATE INDEX 语句中的 ALLOW_DUP_ROW 子句或 IGNORE_DUP_ROW 子句生成警告消息。如果不存在唯一聚集索引，并且需要避免重复行，则可在一个或多个列上而不是聚集键上创建唯一约束。


备份和还原（级别 1）

因为在运行 Microsoft® SQL Server™ 2000 的服务器和运行 SQL Server 早期版本的服务器之间的备份不兼容，所以 SQL Server 6.x 数据库转储（备份）不能在 SQL Server 2000 服务器上还原。有关将数据库升级到 SQL Server 2000 的更多信息，请参见升级 SQL Server 6.5 数据库（升级向导）。

SQL Server 6.x | SQL Server 2000
DUMP 和 LOAD 语句的 VOLUME 子句表明转储设备的卷 ID。 | MEDIANAME 子句替换了 VOLUME 关键字。使用 VOLUME 子句导致错误。 删除所有 BACKUP、DUMP、LOAD或 RESTORE 语句中所有 VOLUME 关键字的引用，并用对 MEDIANAME 的引用替换。
DUMP 和 LOAD 语句支持使用磁盘。 | 不支持备份到磁盘。 备份到硬盘，然后将备份文件复制到一张或多张磁盘上。
sysbackuphistory、sysbackupdetail、sysrestorehistory 和 sysrestoredetail 系统表跟踪 DUMP 和 LOAD 的历史信息。 | DUMP 和 LOAD 历史跟踪系统表已删除并由新系统表集合替换。 删除所有对 sysbackuphistory、sysbackupdetail、sysrestorehistory 和 sysrestoredetail 的引用。因为备份系统表的结构和内容有了重大更改，所以在对其引用前请熟悉这些新系统表：backupfile、backupmediafamily、backupmediaset、backupset、restorefile、restorefilegroup 和 restorehistory。


磁盘镜像（级别 1）
SQL Server 6.x | SQL Server 2000
DISK MIRROR、DISK REMIRROR 和 DISK UNMIRROR 执行 SQL Server 磁盘镜像。 | 不再支持，因为不再支持 SQL Server 镜像。使用 Microsoft Windows NT® 或基于硬件的 RAID。有关更多信息，请参见 Windows NT 或硬件文档。


系统存储过程（复制）（级别 1）
SQL Server 6.x | SQL Server 2000
sp_replica 远程设置（在订阅服务器上）sysobjects 类别位，标志表为副本。 | 已删除，不再支持或不再可用。删除所有对 sp_replica 的引用。
sp_replsync 当由订阅服务器使用时承认手工同步的完成。 | 已删除，不再支持或不再可用。删除所有对 sp_replsync 的引用。
sp_helppublicationsync 为发布提供关于已调度的同步任务的信息。 | 不再支持。如果使用该存储过程，则将返回错误信息。删除所有对 sp_droppublisher 的引用。
sp_subscribe 和 sp_unsubscribe 远程添加或取消对发布中特定项目的订阅，或整个发布的订阅，或所有发布的订阅。 | 不再支持。如果使用该存储过程，则将返回错误信息。删除所有对 sp_subscribe 或 sp_unsubscribe 的引用，或使用 @@ERROR 函数测试错误。
sp_changepublication 中的 name 值参数用于提供新的发布名称。 | 已删除，不再支持或不再可用。删除所有对 sp_changepublication 的 name 值参数的引用。
sp_addpublisher 在订阅服务器添加发布者，并在分发服务器添加分发发布者。 | 由 sp_adddistpublisher 替换。删除所有对 sp_addpublisher 的引用，并替换为对 sp_adddistpublisher 的引用。
sp_droppublisher 除去发布服务器。 | 已删除，不再支持或不再可用。删除所有对 sp_droppublisher 的引用。若要除去分发服务器上的发布者，请使用 sp_dropdistpublisher。
sp_distcounters 用于查询已传送或未传送命令，该命令由性能监视器使用，性能监视器不再使用该过程。 | 不再支持。新视图 MSdistribution_status 显示大多数相同的信息。
sp_helpreplicationdb 用于返回关于指定数据库或服务器上所有发布数据库列表的信息。 | 已删除，不再支持。删除所有对 sp_helpreplicationdb 的引用，并替换为对 sp_helpreplicationdboption 的引用。
sp_replstatus 更新用于复制的内部表结构。 | 已删除，不再支持。删除对 sp_replstatus 的引用。


安全性（级别 2）
SQL Server 6.x | SQL Server 2000
GRANT 和 REVOKE 语句分别地授权和废除权限。REVOKE 语句否定单个用户的权限，所否定的权限授权给该用户的组。 | 安全性模式除 GRANT 和 REVOKE 外，还使用 DENY。REVOKE 更改为删除先前授权或否定的权限。DENY 在安全性系统中创建条目，否定安全帐户的权限，并防止用户、组或角色通过组和角色成员资格继承权限。REVOKE 语句不再用于否定用户的权限（只要用户的组拥有该权限）。使用 DENY 语句显式地否定特定用户或组的权限。 与 SQL Server 早期版本相比，应该有不同的结果。认识到如果 REVOKE 用于拒绝组中选定成员的权限，则使用 SQL Server 6.x 安全模式、使用 GRANT 和 REVOKE 语句的脚本，与使用 GRANT、REVOKE 和 DENY 当前模式的脚本行为不同。
当执行 RPC 时，使用集成安全性模式的登录引用内部登录名，其中反斜线 (\) 翻译为下划线 (_)。例如，\Domain\Joe 翻译为 Domain_Joe。 | 这些升级为 SQL Server 的服务器当使用 NT 身份验证时，执行 RPC 调用不再将反斜线翻译为下划线。若要使用 SQL Server 6.x 版对登录名的命名规则，可使用 sp_addlinkedsrvlogin 将用户名的反斜线版映射为下划线版。 与 SQL Server 早期版本相比，应该有不同的结果。当发送使用 SQL Server 2000 的 RPC 服务器时，请为 sp_addlinkedsrvlogin 添加引用以将反斜线版登录名翻译为下划线版从而维持 6.x 版登录翻译。

示例
A. 将特定的反斜线登录映射为下划线登录

本例将 \LONDON1\nancyd 登录名映射为 LONDON1_nancyd：

sp_addlinkedsrvlogin 'receiving_server_name',
   false,
   'LONDON1\nancyd',
   'LONDON1_nancyd', NULL
B. 将特定的反斜线登录映射为 sa 登录

本例将 Nancy 的 LONDON1 登录映射为 sa 登录，因为 Nancy 的域登录为内置管理员组的一部分：

sp_addlinkedsrvlogin 'receiving_server_name',
   false,
   'LONDON1\nancyd',
   'sa', NULL


数据库选项（级别 1）

管理脚本可能已用到这些数据库选项。在 SQL Server 2000 中，设置数据库选项时应使用 ALTER DATABASE 语句而不是 sp_dboption 存储过程。有关数据库选项的更多信息，请参见设置数据库选项和 ALTER DATABASE。

SQL Server 6.x | SQL Server 2000
sp_dboption 的 subscribe 选项为订阅启用或禁用某个数据库。 | 已删除，不再可用。使用 sp_addsubscription 为订阅启用或禁用某个数据库。
sp_dboption 的 no chkpt. on recovery 选项定义检查点记录是否添加到 SQL Server 启动时恢复的数据库中。 | 已删除，不再可用。当使用备用服务器时，可使用 RESTORE 语句的 WITH STANDBY 子句。


配置选项（级别 1）

管理脚本可能已使用这些配置选项。有关配置选项的更多信息，请参见设置配置选项。

SQL Server 6.x | SQL Server 2000
backup buffer size 选项指定转储和装载缓冲区（用于增加备份速度）的大小。 | 已删除，不再支持。删除所有对 backup buffer size 的引用。
backup threads 选项指定线程的数目，这些线程被保留用于条带化转储和装载操作。 | 已删除，不再支持。删除所有对 backup threads 的引用。
database size 选项设置为每个新用户数据库分配的默认兆字节 (MB) 数。 | 已删除，不再支持。删除所有对 database size 的引用。
free buffers 选项确定对于系统可用的缓冲区极限值。 | 已删除，不再支持。删除所有对 free buffers 的引用。
hash buckets 选项设置存储桶的数目，这些存储桶用于哈希页面到内存中的缓冲区。 | 已删除，不再支持。删除所有对 hash buckets 的引用。
LE threshold maximum 选项确定在升级为表锁前控制页锁的最大值。 | 已删除，不再支持。删除所有对 LE threshold maximum 的引用。
LE threshold minimum 选项确定在升级为表锁前需要页锁的最小值。 | 已删除，不再支持。删除所有对 LE threshold minimum 的引用。
LE threshold percent 选项指定在请求表锁前，在表上需要页锁的百分比。 | 已删除，不再支持。删除所有对 LE threshold percent 的引用。
logwrite sleep 选项指定毫秒数，该时间为当缓冲区未满时写入日志要延迟的时间。 | 已删除，不再支持。删除所有对 logwrite sleep 的引用。
max lazywrite IO 选项调整由惰性写入器执行的批异步 I/O 操作的优先级。 | 已删除，不再支持。删除所有对 max lazywrite IO 的引用。
memory 选项设置可用内存的大小，以 2K 为单位。 | 已删除，不再支持。内存根据需要和可用内存自动配置。若要控制自动配置的内存范围，请使用 min server memory 和 max server memory 选项。删除所有对 memory 的引用。
open databases 选项设置在 SQL Server 中可同时打开的数据库的最大值。 | 已删除，不再支持。删除所有对 open databases 的引用。
procedure cache 选项指定在满足 SQL Server 内存的需要后分配给过程高速缓存的内存百分比。 | 已删除，不再支持。删除所有对 procedure cache 的引用。
RA cache hit limit 选项指定在取消前，预读请求所能具有的高速缓存命中数。 | 已删除，不再支持。删除所有对 RA cache hit limit 的引用。
RA cache miss limit 选项指定高速缓存命中遗漏数，遗漏发生在该命令预读开始前的水平遍历中。 | 已删除，不再支持。删除所有对 RA cache miss limit 的引用。
RA delay 选项指定预读延迟，以毫秒为单位。 | 已删除，不再支持。删除所有对 RA delay 的引用。
RA pre-fetches 选项确定预提取管理器在空闲前读取的提前量（以扩展方式为基础）。 | 已删除，不再支持。删除所有对 RA pre-fetches 的引用。
RA slots per thread 选项指定每个预读服务线程管理的同时发生的请求数。 | 已删除，不再支持。删除所有对 RA slots per thread 的引用。
RA worker threads 选项指定服务于预读请求的线程数。 | 已删除，不再支持。删除所有对 RA worker threads 的引用。
recovery flags 选项确定在恢复过程中 SQL Server 在错误日志中显示的信息。 | 已删除，不再支持。删除所有对 recovery flags 的引用。
remote conn timeout 选项指定中断服务器之间连接的时间限制。 | 已删除，不再支持。删除所有对 remote conn timeout 的引用。
SMP concurrency 选项指定 SQL Server 使用的最大 CPU 数。 | 已删除，不再支持。删除所有对 SMP concurrency 的引用。
sort pages 选项指定可分配给每个用户用于排序的最大页数。 | 用 min memory per query 选项替换。有关 min memory per query 选项的更多信息，请参见服务器内存选项。 用 min memory per query 选项和 index create memory 选项替换所有对 sort pages 选项的引用。
如果需要，tempdb in ram 选项将 tempdb 数据库置于 RAM 中。 | 因为 SQL Server 2000 的性能已得到最大优化，所以不再支持该选项。 删除所有对 tempdb in ram 的引用。
trace flag 204 选项支持这样的查询，当提供 DISTINCT 关键字时在 ORDER BY 子句中包含排序列，而在选择列表中不包括这些排序列。 | 不再支持。删除所有对 trace flag 204 选项的引用。有关支持的跟踪标记的更多信息，请参见跟踪标记。
user connections 选项设置到 SQL Server 的同时连接的最大值。 | 现在是高级选项。默认值 0 表示自动增长。删除所有对 user connections 的引用。

有关配置选项的其它更改的更多信息，请参见 SQL Server 2000 和 SQL Server 7.0 版。


ODBC（级别 2）
SQL Server 6.x SQL Server 2000
当扩展存储过程或批处理遇到以下条件时，SQLExecute、SQLExecDirect 或 SQLParamData 返回 SQL_ERROR：
  • 第一个数据返回语句导致错误（运行时错误或 RAISERROR 语句，该语句中严重度大于或等于 11）。

  • 在导致错误的语句后，存在来自其它语句（甚至简单的 RETURN 语句）的数据。

由于 SQL_ERROR 返回代码，所以语句句柄立即可用。

 当 ODBC 3.x 应用程序使用包含在此版本中的遵从 ODBC SQL Server 3.51 的驱动程序（使用 SQLExecute、SQLExecDirect 或 SQLParamData）时，返回 SQL_SUCCESS_WITH_INFO。

由于 SQL_SUCCESS_WITH_INFO 返回代码，所以请在该语句句柄可用前，为其处理结果。

与 SQL Server 早期版本相比，应该有不同的结果。按实际需要使用 SQLGetDiagRec 处理 SQL_SUCCESS_WITH_INFO，然后调用 SQLMoreResults 处理剩余结果。


磁盘命令（级别 1）
SQL Server 6.x | SQL Server 2000
当设备存在（文件存在），但 sysusages 中的项目不再存在时，DISK REINIT 和 DISK REFIT 从系统表恢复使用信息。 | 已删除，不再支持或不再可用。删除所有对 DISK REINIT 的引用。将所有对 DISK REFIT 的引用替换为对 ALTER DATABASE 的引用，该引用添加或除去数据库中包含的文件组并修改每个数据库文件组的大小。


数据类型（级别 2）
SQL Server 6.x | SQL Server 2000
binary 或 varbinary 到 decimal 或 numeric 的转换为显式。 | 此转换为隐性。 与 SQL Server 早期版本相比，应该有不同的结果。binary 或 varbinary 到 decimal 或 numeric 的转换应为隐性。有关数据类型转换的更多信息，请参见 CAST 和 CONVERT。有关系统提供的数据类型的更多信息，请参见数据类型。
不允许 binary 或 varbinary 到 smallmoney 的转换。 | 允许进行此转换。 与 SQL Server 早期版本相比，应该有不同的结果。按实际需要使用。
不允许 datetime 或 smalldatetime 到 decimal、numeric、float、real、int、smallint、tinyint、money、smallmoney 或 bit 的转换。 | 允许进行此转换。 与 SQL Server 早期版本相比，应该有不同的结果。按实际需要使用。
不允许 float 或 real 到 binary 或 varbinary 的转换。 | 允许进行此转换。 与 SQL Server 早期版本相比，应该有不同的结果。按实际需要使用。
money 或 smallmoney 到 char 或 varchar 的转换为隐性。 | 此转换为显式。 与 SQL Server 早期版本相比，应该有不同的结果。money 或 smallmoney 到 char 或 varchar 的转换应为显式。
不允许 bit 到 money 或 smallmoney 的转换。 | 允许进行此转换。 与 SQL Server 早期版本相比，应该有不同的结果。按实际需要使用。
sysname 数据类型为 varchar(30)。 | sysname 数据类型为 nvarchar(128)，允许 128 Unicode 字符。 与 SQL Server 早期版本相比，应该有不同的结果。定义为 sysname 的任何列或局部变量应允许 Unicode 数据。有关 sysname 的更多信息，请参见数据类型。
不直接支持 nchar、nvarchar 和 ntext Unicode 数据类型，因为对于char、binary、varchar 和 varbinary 数据类型，存储的最大值为 255 字节。 | 可在 char、binary、varchar 和 varbinary 数据类型中存储的最大字节值增加为 8,000。SQL Server 2000 客户端完全支持 nchar、nvarchar 和 ntext 数据类型。SQL Server 6.x 客户端在访问具有这些 Unicode 数据类型的 SQL Server 2000 版本时将遇到以下结果： nvarchar 数据作为 varchar 返回，而 nchar 数据作为 char 返回。大于 255 双字节字符的 nvarchar 和 nchar 值将截断为 255 单字节字符。 试图访问 ntext 数据将导致 SQL Server 产生 4004 号错误。ntext 数据不能发送到 6.x 版客户端。 大于 255 字节的 char、varchar、binary 和 varbinary 值将截断为255 字节。 与 SQL Server 早期版本相比，应该有不同的结果。当从 6.x 版客户端访问 SQL Server 2000 的数据时，数据会有所不同。若要消除这些不同，请将客户端升级到 SQL Server 2000 客户端软件。
使用 CONVERT 将空字符串转换为 int (CONVERT(int, '')) 或 float (CONVERT(float, '')) 时将返回 0。 | 使用 CAST 或 CONVERT 将空字符串转换成 int (CAST('' AS int)) 或 float (CAST('' AS float)) 时将返回错误信息。 与 SQL Server 早期版本相比，应该有不同的结果。


INSERT（级别 2）
SQL Server 6.x SQL Server 2000
INSERT x SELECT INTO Y 语句忽略表 Y，并且将 SELECT 结果插入表 X 中，如下所示：
INSERT X
SELECT select_list INTO Y
 INSERT...SELECT INTO 语法仅当兼容级别等于 60 或 65 时保留，如果兼容级别为 70 或 80 并执行类似的查询，则 SQL Server 返回语法错误。

与 SQL Server 早期版本相比，应该有不同的结果。通过执行 sp_dbcmptlevel 设置兼容性设置为 60 或 65，从而为使用 INSERT ...SELECT INTO 语法的查询保留 6.x 版本功能。否则使用 80 的兼容性设置。
在 INSERT 语句中，返回标量值的 SELECT 语句允许存在于 VALUES 子句中。 INSERT 语句不能在 VALUES 子句中将 SELECT 语句用作插入值之一。仅当兼容性设置等于 60 或 65 时，6.x 版本支持可用。

与 SQL Server 早期版本相比，应该有不同的结果。通过执行 sp_dbcmptlevel 设置兼容性设置为 60 或 65，从而为在 INSERT语句的 VALUES 子句中使用 SELECT 语法的查询保留 6.x 版本功能。否则使用 80 的兼容性设置。
位于在 INSERT table EXEC procedure 语句中所引用的存储过程中的 ROLLBACK 语句导致 INSERT 回滚，但是批处理继续。 由INSERT...EXEC 语句引用的存储过程中的 ROLLBACK 语句导致整个事务回滚，并且批处理停止执行。仅当兼容性设置等于 60 或 65 时，6.x 版本支持可用。

与 SQL Server 早期版本相比，应该有不同的结果。通过执行 sp_dbcmptlevel 设置兼容性设置为 60 或 65，从而为 INSERT...EXEC 语句中的 ROLLBACK 语句行为保留 6.x 版本功能。否则使用 80 的兼容性设置。


UPDATETEXT（级别 2）
SQL Server 6.x | SQL Server 2000
UPDATETEXT 将 text 列初始化为 NULL，分配完整的 2K 页。 | 如果 sp_dbcmptlevel 的兼容级别设置为 65，则 UPDATETEXT 将 text 列初始化为 NULL。但是，如果 sp_dbcmptlevel 的兼容级别设置为 70 或 80，则 WRITETEXT 将 text 列初始化为 NULL；UPDATETEXT 将 text 列初始化为空字符串。 根据sp_dbcmptlevel 的兼容级别设置，当将 text 值初始化为 NULL（使用 UPDATETEXT 或 WRITETEXT）时，行为应不同。


数据库页和扩展盘区（级别 2）
SQL Server 6.x | SQL Server 2000
数据库扩展盘区由 8 个 2 KB 页组成。 | 数据库扩展盘区由 8 KB 页组成。不同的对象现在可共享扩展盘区，或对象可以有自己的扩展盘区。一个表和索引至少有两页。 与 SQL Server 早期版本相比，应该有不同的结果。调整磁盘空间要求以获得充足的数据库存储。有关更多信息，请参见页和扩展盘区。


RIGHT（级别 2）
SQL Server 6.x | SQL Server 2000
RIGHT 为保留字。 | RIGHT 为保留字，不应用于数据库对象名（除非使用标识符）。有关 SQL Server 2000 保留关键字的更多信息，请参见使用保留关键字。 与 SQL Server 早期版本比较应有不同的结果，因为 RIGHT 现在为保留关键字。有关在标识符中使用 RIGHT 的更多信息，请参见使用标识符。


程序组工具和实用工具（级别 1）

 安装 SQL Server
实用工具（级别 1）
SQL Server 6.x | SQL Server 2000
probe 登录，不需要密码，由 DB-Library 和 Windows NT 性能监视器使用。DB-Library 两阶段提交库使用 probe 登录检查分布式事务的状态。Windows NT 性能监视器也使用该方式从 SQL Server 获得统计。 | probe 登录已消除。Windows NT 性能监视器将一直使用 Windows NT 身份认证连接 SQL Server，该身份认证以前称为集成安全性。确保 Windows NT 用户名和密码拥有适当的特权以使用 Windows NT 性能监视器。


系统存储过程（系统）（级别 1）
SQL Server 6.x | SQL Server 2000
几个用于文档化键的系统存储过程。 | 已删除，不再支持或不再可用。通过带有 ALTER TABLE 或 CREATE TABLE 的实现键和约束，使用声明引用完整性。删除所有对这些系统存储过程的引用，并替换为对 sp_help 或 sp_helpconstraint 的引用： sp_commonkey sp_dropkey sp_foreignkey sp_helpjoins sp_helpkey sp_primarykey
sp_placeobject 在特定段上为表或索引留出未来的空间分配。 | 由于段不再存在，sp_placeobject 可用。使用 CREATE TABLE 语句的 ON FILEGROUP 语法放置表或有关单个文件组的索引信息。删除所有 sp_placeobject 引用，并替换为对 CREATE TABLE 语句的 ON FILEGROUP 子句的引用。
sp_dbinstall 安装数据库及其设备，用于可移动介质。 | 已删除，不再支持或不再可用。删除所有对 sp_dbinstall 的引用，并替换为对 sp_attach_db 的引用。
sp_makestartup 和 sp_unmakestartup 设置存储过程以自动执行，并分别停止存储过程的自动执行。 | 已删除，不再支持或不再可用。删除所有对 sp_makestartup 或 sp_unmakestartup 的引用，并替换为对 sp_procoption 的引用。
sp_helplogins、sp_helprotect 和 sp_tableoption 系统存储过程支持模式匹配（使用通配符），这使得特定的参数具有灵活性。 | 在这些系统存储过程中不再支持使用通配符的模式匹配，因为任何系统存储过程标识符可能包含模式匹配字符。删除所有在 sp_helplogins、sp_helprotect 和 sp_tableoption 中对模式匹配的引用。
sp_serveroption 的 fallback 选项表示后备服务器。 | 因为不再支持 fallback 选项，所以 sp_serveroption 的 fallback 选项不再可用。删除所有对 sp_serveroption 的fallback 选项的引用。
sp_setlangalias 为可选语言指派或更改别名。 | 已删除，不再支持。使用 syslanguages 中提供的别名。删除所有对 sp_setlangalias 的引用。
sp_droplanguage 从数据库中除去可选语言，并从 master.dbo.syslogins 中删除相应行。 | 已删除，不再支持。删除所有对 sp_droppublisher 的引用。
由执行系统存储过程提供的后备支持，这些过程将数据库和设备的控制从中断的主服务器轮换到后备服务器。 | 使用后备系统存储过程不再支持后备支持。对后备服务器的支持使用 Microsoft Windows NT 聚集服务支持。删除所有对以下后备系统存储过程的引用： sp_fallback_activate_svr_db, sp_fallback_deactivate_svr_db, sp_fallback_enroll_svr_db, sp_fallback_help, sp_fallback_permanent_svr, sp_fallback_upd_dev_drive, sp_fallback_withdraw_svr_db。
sp_devoption 显示或设置设备状态。 | 已删除，不再可用。删除所有对 sp_devoption 的引用。
当用户没有指定数据库设备或者使用 CREATE DATABASE 或 ALTER DATABASE 语句指定 DEFAULT 时，sp_diskdefault 设置数据库设备状态表明该设备是否用于数据库存储。 | 已删除，不再可用。删除所有对 sp_diskdefault 的引用。
sp_helplog 报告设备名称，该设备包含当前数据库中日志的第一页。 | 已删除，不再可用。删除所有对 sp_helplog 的引用。
sp_helpstartup 报告所有自动启动的存储过程的列表。 | 已删除，不再可用。删除所有对 sp_helpstartup 的引用，并替换为对 sp_procoption 的引用。
sp_sqlexec 为 SQL Server 数据库客户端和服务器提供简便方法，将任何格式的语言语句发送到开放式数据服务服务器的应用程序。 | 已删除，不再可用。删除所有对 sp_sqlexec 的引用。
sp_helprevdatabase 分析现有数据库，并创建用于在其它服务器上复制数据库结构的脚本。 | 已删除，不再可用。如果适用，使用数据库对象的 SQL-DMO 脚本方法生成类似信息。删除所有对 sp_helprevdatabase 的引用。
sp_addlanguage 为服务器添加可选语言。 | 已删除，不再可用。删除所有对 sp_addlanguage 的引用。


开放式数据服务（级别 1）

安装 SQL Server
服务（级别 1）
SQL Server 6.x | SQL Server 2000
SQL Executive 提供 SQL Server 调度引擎。SQL Executive 提供广阔的和不同的任务调度和警报能力，并能处理大型的客户端/服务器环境。 | SQL Executive 任务现在由 SQL Server 代理执行。使用 SQL Server 代理进行调度。有关更多信息，请参见配置 SQL Server 代理服务。


自定义排序顺序（级别 1）
SQL Server 6.x | SQL Server 2000
自定义排序顺序从定义文件（通常具有 .srt 文件扩展名）安装。 | 已删除，不再支持或不再可用。删除所有对自定义排序顺序的引用。在安装 SQL Server 2000 时，选择适当的排序顺序。有关更多信息，请参见 Windows 排序规则排序样式。


SET SHOWPLAN（级别 2）
SQL Server 6.x | SQL Server 2000
当 SET SHOWPLAN 设置为 ON 时，SQL Server 执行 Transact-SQL 语句。 | 当替换SET SHOWPLAN 的 SET SHOWPLAN_ALL 和 SET SHOWPLAN_TEXT 语句设置为 ON 时，不执行 Transact-SQL 语句。 与 SQL Server 早期版本相比，应该有不同的结果。当 SET SHOWPLAN_ALL 或 SET SHOWPLAN_TEXT 设置为 ON 时，行为应有不同。


SQL-DMO（级别 1）

SQL-DMO 应用程序是管理工具，应当将其更新为与 SQL Server 2000 一起使用。建议重新编译代码并且将所有由生成过程返回的错误信息用于跟踪任何必要的改动。

SQL Server 6.x | SQL Server 2000
SQL-DMO 在 Sqlole.dll 中实现。SQL-DMO 对象表现为 SQL Server 6.5 版及其早期版本自动化管理任务的属性、方法和事件。SQL-DMO 在 Sqlole.dll 中实现，并且不能连接到 SQL Server 2000 或 SQL Server 7.0 并在其上进行操作。 | SQL-DMO 在 Sqldmo.dll 中实现。这些 SQL-DMO 对象表现为 SQL Server 自动化管理任务的属性、方法和事件。不能将它们用于连接到 SQL Server 6.5 版或更早版本的服务器并在其上进行操作。因此，建议重新编写 SQL-DMO 应用程序。 如果应用程序必须同时在 SQL Server 2000 和 SQL Server 6.5 版或更早版本上操作，则应在应用程序中引用 Sqldmo.dll 和 Sqlole.dll 组件。根据现有子过程开发新的独立子过程，从中引用 SQL Server 2000 SQL-DMO 对象。 如果应用程序仅对 SQL Server 2000 工作，则重新编写现有的子过程以引用 SQL Server 2000 SQL-DMO 对象。 如果应用程序不对新 SQL Server 2000 服务器使用，则不更改应用程序并继续使用。


段（级别 1）
SQL Server 6.x | SQL Server 2000
可使用 CREATE INDEX 语句在段上放置索引。 | 不再支持段。但是，CREATE INDEX 可在文件组上创建索引。删除所有对段的引用，并替换为 CREATE INDEX 语句中对文件组的引用。
使用 CREATE TABLE 语句在特定的段上创建表。 | CREATE TABLE 引用文件和文件组，而不是段。删除所有对段的引用，并替换为在 CREATE TABLE 语句中对文件和文件组的引用。
用户定义的段允许出于性能原因进行特定设备上的数据库对象的放置。 | 不再支持段。多磁盘 RAID 设备通常以更低的相关管理成本提供更大的性能增长。对用户定义的数据、索引或文本位置使用文件组。删除所有与以下段相关的系统存储过程的引用： sp_addsegment sp_dropsegment sp_extendsegment sp_helpsegment 创建、修改或除去文件和文件组，并使用 CREATE TABLE、CREATE DATABASE、ALTER DATABASE和 CREATE INDEX 在文件或文件组上创建索引。


安全性（级别 1）
SQL Server 6.x | SQL Server 2000
DENY 不是保留的关键字，可用于对象标识符。 | DENY 为保留的关键字。重命名所有名为 DENY 的对象。更改所有引用了该对象的 Transact-SQL 语句和脚本，使其使用新对象名。如果 DENY 用作对象标识符，则所有对该对象的引用必须使用分隔标识符。


LTRIM 和 RTRIM 剪裁函数（级别 2）
SQL Server 6.x SQL Server 2000
在使用 0 长度字符串的查询中，LTRIM 和 RTRIM 函数返回 NULL：
SELECT RTRIM('')

SELECT DATALENGTH(RTRIM(''))
支持 0 长度的字符串。所显示的查询返回非空值；第一个返回 ''，第二个返回 0。

与 SQL Server 早期版本相比，应该有不同的结果。LTRIM 和 RTRIM 提供与 SQL Server 早期版本不同的输出。


表提示（级别 2）
SQL Server 6.x | SQL Server 2000
这些表提示（以前称为优化程序提示）可指定为 FROM 子句后的以下关键字： FASTFIRSTROW, HOLDLOCK, INDEX, NOLOCK, PAGLOCK, TABLOCK, TABLOCKX 和 UPDLOCK。 | 表提示必须指定为在 FROM 子句后，使用 WITH 子句。必须将表提示括在括号中。 与 SQL Server 早期版本相比，应该有不同的结果。有关更多信息，请参见 DELETE、FROM、INSERT、SELECT 和 UPDATE。


事务（级别 2）
SQL Server 6.x | SQL Server 2000
当 CURSOR_CLOSE_ON_COMMIT 设置为 OFF 时，ROLLBACK 语句不关闭使用 DECLARE CURSOR 语句定义的 Transact-SQL 游标。通过数据库 API 函数打开的服务器游标在 ROLLBACK 语句后仍然保持打开。 | 当 CURSOR_CLOSE_ON_COMMIT 设置为 OFF，ROLLBACK 语句关闭所有由 DECLARE CURSOR 语句的 SQL-92 形式定义的 Transact-SQL 游标，除非 DECLARE CURSOR 语句包含 INSENSITIVE 或 STATIC 关键字。除非游标已定义为 STATIC 游标（例如使用 ODBC SQL_CURSOR_STATIC 属性），否则所有 API 服务器游标也关闭。 与 SQL Server 早期版本相比，应该有不同的结果。在发出 ROLLBACK 语句后重新打开所有游标。
SET TRANSACTION ISOLATION LEVEL 的 REPEATABLE READ 子句与 SERIALIZABLE 子句行为相同。无法确保重复读取，也没有防止幻像（在回滚后，逻辑上永远不存在所读取的值）的措施。需要 REPEATABLE READ 语义的事务必须付出额外的可串行性并行损失。 | REPEATABLE READ 子句现在不再必须防止幻像。使用 SET TRANSACTION ISOLATION LEVEL 的 SERIALIZABLE 子句设置可串行事务，允许比 REPEATABLE READ 子句更少的并行，因为其防止幻像。 与 SQL Server 早期版本相比，应该有不同的结果。很多应用程序仅需要 REPEATABLE READ 语义进行正确的操作。对于需要 REPEATABLE READ 语义而不需要幻像保护的应用程序，使用 SET TRANSACTION ISOLATION LEVEL 的 REPEATABLE READ 子句。如果必需进行幻像保护，则使用 SERIALIZABLE 子句。

以下是使用 SET TRANSACTION ISOLATION LEVEL 的 SQL Server 6.5 版和 SQL Server 2000 幻像保护的摘要。

幻像保护 | SQL Server 6,5 | SQL Server 2000
REPEATABLE READ | 是 | 否
SERIALIZABLE | 是 | 是


备份和还原（级别 2）
SQL Server 6.x | SQL Server 2000
配合使用 DUMP 语句的 SKIP 和 INIT 子句无条件地重写备份设备的内容。 | DUMP 语句的 SKIP 和 INIT 子句保护 Microsoft 磁带格式介质头。在某些情况下，这将防止重写备份内容。FORMAT 子句无条件地重写介质，生成新头，在介质第一次使用或必须重写介质头时需要该子句。 与 SQL Server 早期版本相比，应该有不同的结果。如果介质为空，SKIP 和 INIT 与 BACKUP 或 DUMP 语句的 FORMAT 子句作用相同，写新介质头。如果介质不为空，则 SKIP 和 INIT 不写新介质头。
LOAD 语句当恢复数据库备份时不自动创建数据库。 | 在恢复数据库之前，创建数据库不再必要。RESTORE 语句重新自动创建数据库，包括所有文件。但是，数据库设备在 sysdevices 中不重建。仅为向后兼容性支持这些设备。在恢复后，使用设备 (DISK INIT) 创建的原始数据库外观上与使用 SQL Server 2000 文件语法创建的数据库相同。 与 SQL Server 早期版本相比，应该有不同的结果。考虑在 CREATE DATABASE 和 ALTER DATABASE 中为指定文件使用新语法。
DUMP 的 NO_LOG 子句仅当数据库中空间不足，无法使用 DUMP TRANSACTION WITH TRUNCATE_ONLY 清除日志时使用。NO_LOG 子句删除日志的非活动部分，而不制作备份复本，不对操作记录日志从而节省了空间。DUMP 语句的 TRUNCATE_ONLY 子句删除日志的非活动部分，而不制作备份复本。 | RESTORE 的 NO_LOG 和 TRUNCATE_ONLY 子句是同义词。BACKUP 的两个子句现在都删除日志的非活动部分，但并不制作它的备份复本，并且截断日志。 与 SQL Server 早期版本相比，应该有不同的结果。BACKUP 或 DUMP 语句的 NO_LOG 和 TRUNCATE_ONLY 子句在行为上应相同。
多事务日志的恢复可以执行而不需要在 LOAD 语句中使用特定的关键字。 | 不再可能不使用 RESTORE 语句的 WITH 子句恢复多事务日志。 与 SQL Server 早期版本相比，应该有不同的结果。使用正确的 RESTORE 语法恢复带有多事务日志的数据库，如下例所示。所有除了最后的 RESTORE 语句应指定 NORECOVERY 子句。
当装载数据库时，所有 sp_dboption 的数据库选项将不受影响，必须手工设置。 | 日志记录所有对 sp_dboption 数据库设置（除“脱机”、“合并发布”、“已发布”和“已订阅”设置）的更改。当数据库还原和恢复时，所有 sp_dboption 的数据库选项前滚。当恢复完成后，每个数据库选项在此时处于期望状态，与数据库的剩余部分一致。 与 SQL Server 早期版本相比，应该有不同的结果。在 RESTORE 操作后重置数据库选项不再必要。

示例

A. 通过应用完整的数据库备份和多事务日志恢复数据库

本例使用多事务日志备份恢复数据库。

RESTORE DATABASE mydb
FROM mydb
WITH NORECOVERY

RESTORE LOG mydb
FROM mydb_log1
WITH NORECOVERY

RESTORE LOG mydb
FROM mydb_log2
WITH RECOVERY

SQL Server 6.x | SQL Server 2000
如果启用 sp_dboption 的 no chkpt. on recovery 选项，则备用服务器可在每个事务日志恢复间设置为只读模式。 | 如果使用撤消文件，则备用服务器可在事务日志还原操作间设置为只读模式。 与 SQL Server 早期版本相比，应该有不同的结果。用 RESTORE的 STANDBY 子句为备用服务器使用撤消文件，如下例所示。

B. 使用 STANDBY 子句和撤消文件恢复数据库

本例用最后的必要 RESTORE 语句设置服务器允许数据库上的写操作。

RESTORE DATABASE mydatabase
FROM mydb_backup
WITH NORECOVERY

RESTORE LOG mydb
FROM mydb_log1
WITH RECOVERY STANDBY (FILENAME = 'c:\mssql\data\mydbundo.dat')

RESTORE LOG mydb
FROM mydb_log2
WITH RECOVERY STANDBY (FILENAME = 'c:\mssql\data\mydbundo.dat')

RESTORE DATABASE mydb
WITH RECOVERY


系统表（级别 2）
SQL Server 6.x | SQL Server 2000
系统表由 SQL Server 内部使用，适用范围很广。 | 某些系统表已发生了微小的更改，而其它系统表由提供相同信息的信息架构视图替换。 与 SQL Server 早期版本相比，应该有不同的结果。使用提供的信息构架视图或 ODBC 目录系统存储过程 获得系统目录信息。
sysdatabases 的 logptr 列为指向事务日志的指针。 | logptr 列已重命名为 status2。删除所有对 sysdatabases 的 logptr 列的引用，并替换为对 status2 列的引用。
sysdatabases 的 dumptrdate 列为上次使用 DUMP TRANSACTION 的日期。 | 该列现在“保留”。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有对 sysdatabases 的 dumptrdate 列的引用。
sysmessages 的 langid 列包含 SQL Server 消息组 ID。 | langid 列重命名为 msglangid。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有对 sysmessages 的langid 列的引用，并替换为对 msglangid 列的引用。
syslogins 表的 language 列的 NULL 值相当于指定 us_english。 | language 列的 NULL 值不再相当于 us_english。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有对 syslogins 的 language 列的引用，并替换为要用的语言名。
系统表通过插入特定值获得其列值（SQL Server 2000 在很多系统表和用户定义表中使用计算列）。 | 系统表（和用户定义的表）现可使用计算列。 与 SQL Server 早期版本相比，应该有不同的结果。涉及表提示和系统表的 SQL Server 6.5 版查询生成的结果集可能仍相同，但在 SQL Server 2000 中的行为可能不同。例如，即使在查询的 FROM 子句中已指定 NOLOCK 表提示，查询可能仍要等待某些锁。


视图（级别 2）
SQL Server 6.x | SQL Server 2000
可更新视图受限为只影响一个表的修改。 | 可更新视图可以更改该视图涉及的多个表。只要 SQL Server 可将用户的更新请求明确地翻译为对视图定义中所引用基表的更新，则 DELETE、INSERT 和 UPDATE 语句可引用视图。 当处理可更新视图时，其中视图中的多个表包含在 DELETE、INSERT 或 UPDATE 语句中，行为应不同。


程序组工具和实用工具（级别 1）

在 Microsoft® SQL Server™ 2000 中，已重命名或替换了下列工具。

SQL Server 6.x | SQL Server 2000
ISQL_w | SQL 查询分析器
MS Query | 暂缺
SQL 客户端配置 | 客户端网络实用工具
SQL 企业管理器 | SQL Server 企业管理器
SQL 帮助 | 暂缺
SQL 安全管理器 | 暂缺
SQL 跟踪程序 | SQL Server 事件探查器
SQL 性能监视器 | 暂缺。将 SQL Server 性能计数器添加到了 Windows 2000 系统监视器或 Windows NT 4.0 性能监视器。
SQL 服务管理器 | SQL Server 服务管理器
SQL 安装程序 | 暂缺


SELECT（级别 2）
SQL Server 6.x | SQL Server 2000
不带 ORDER BY 子句的 SELECT 语句返回明显排序集中的行。 | SELECT 语句的显式 ORDER BY 子句用于确保数据任何有用的排序。另外，精确的结果取决于所使用的排序规则。 与 SQL Server 早期版本相比，应该有不同的结果。将 ORDER BY 子句添加到所有需要产生排序行的 SELECT 语句中。


配置选项（级别 2）

管理脚本可能已使用这些配置选项。有关配置选项的更多信息，请参见 sp_configure 和设置配置选项。有关配置选项的更多信息，请参见 SQL Server 联机丛书中的“sp_configure”和“设置配置选项”主题。

SQL Server 6.x | SQL Server 2000
open objects 设置在 SQL Server 中可同时打开的数据库对象的最大值。 | 现在是高级选项。默认值 0 表示自动增长。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有对 open objects 的引用。有关更多信息，请参见 open objects 选项。
user connections 设置允许同时连接到 SQL Server 的最大值。 | 现在是高级选项。默认值 0 表示自动增长。 与 SQL Server 早期版本相比，应该有不同的结果。删除所有对 user connections 选项的引用。


触发器和系统存储过程（级别 2）
SQL Server 6.x | SQL Server 2000
sp_helpsql 为 Transact-SQL 语句、系统存储过程和其它特别主题提供语法。 | 包括 sp_helpsql，但不再为 Transact-SQL 语句或系统存储过程返回语法信息。执行 sp_helpsql 将产生一条消息，建议从 SQL Server 联机帮助获得语法信息。 与 SQL Server 早期版本相比，应该有不同的结果。使用 SQL Server 联机丛书查阅 Transact-SQL 语句和系统存储过程的语法。
在每个表中，对于每个数据修改事件（INSERT、UPDATE 或 DELETE）仅允许使用一个触发器。如果为特定数据修改事件创建了新触发器，则新触发器替换原来的触发器。 | Microsoft® SQL Server™ 允许为每个数据修改事件（DELETE、INSERT 或 UPDATE）创建多个触发器。例如，如果为已经有 UPDATE 触发器的表执行 CREATE TRIGGER FOR UPDATE，则创建另一个 UPDATE 触发器。 与 SQL Server 早期版本相比，应该有不同的结果。通过将 sp_dbcmptlevel 中的兼容级别设置成 80，启用多个触发器。通过将兼容性级别设置成 60 或 65，保持 SQL Server 6x 的行为。有关更多信息，请参见 sp_dbcmptlevel 和 CREATE TRIGGER。
如果触发器修改了定义其自身的表，则触发器不递归唤醒调用该修改。 | SQL Server 允许触发器的递归唤醒调用。 与 SQL Server 早期版本相比，应该有不同的结果。通过设置 RECURSIVE_TRIGGERS 数据库选项，启用递归触发器。有关递归和嵌套触发器的更多信息，请参见嵌套触发器。
sp_create_removable 的一些参数引用设备。 | 设备已由文件或文件组代替。 与 SQL Server 早期版本相比，应该有不同的结果。将 sp_create_removable 中的所有设备引用替换为对文件组的引用
对 inserted 或 deleted 表中对 text 或 image 列的引用表现为 NULL。 | 除非sp_dbcmptlevel 的兼容级别设置为 60 或 65，否则不再允许对 inserted 或 deleted 表中 text 或 image 列的引用。 根据 sp_dbcmptlevel 的设置，当引用 inserted 或 deleted 表中 text 或 image 列时，当使用 CREATE TRIGGER 时，行为应不同。
对于使用 sp_ 前缀的存储过程，SQL Server 先搜索当前数据库，然后在 master 中搜索。 | 带有 sp_ 前缀的存储过程首先在 master 中查找。如果用户定义的存储过程具有与在 master 中系统提供的存储过程相同的名称，则 SQL Server 总是查找到系统提供的存储过程。 与 SQL Server 早期版本相比，应该有不同的结果。当调用用户定义的带有前缀 sp_ 的存储过程时，行为应不同。显式地使用户定义的存储过程名合法，或重命名用户定义的存储过程。
SET ANSI_NULLS 和 SET QUOTED_IDENTIFIER 语句仅在更改了两者之一的选项会话期间处于活动状态。 | 当存储过程创建或改变时，将保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 两者的设置。当执行存储过程时，将启用这些原始设置，并且事后任何客户端会话设置恢复。在存储过程中，只有在存储过程执行后，对 SET ANSI_NULLS 的更改才会生效。 与 SQL Server 早期版本相比，应该有不同的结果。使用 SET QUOTED_IDENTIFIER、SET ANSI_NULLS 的一个设置和所有其它相关 SET 选项开发数据库或应用程序。如果客户端会话更改 SET 选项，请在存储过程外这样做。
当执行远程存储过程时，这些过程可能为通过 SET ANSI_DEFAULTS 设置的选项假定非标准行为。另外，远程存储过程可能不显式地将这些选项（由 SET ANSI_DEFAULTS 设置)设置为 OFF。 | 当执行远程存储过程时，将在 SET ANSI_DEFAULTS 设置为 ON 的状态下执行这些过程。 与 SQL Server 早期版本相比，应该有不同的结果。当执行远程存储过程时，如果 SET ANSI_DEFAULTS 使用非标准设置，或如果选项非显式地设置为 OFF，则行为应不同。


SET DISABLE_DEF_CNST_CHK（级别 1）
SQL Server 6.x | SQL Server 2000
SET DISABLE_DEF_CNST_CHK 设置控制中间约束检查。 | 已删除，不再可用。删除所有对 SET DISABLE_DEF_CNST_CHK 的引用。


SQL 警报器（级别 1）
SQL Server 6.x | SQL Server 2000
SQL 警报器，SQLALRTR.exe，用于集成警报引擎和 Windows NT 性能监视警报器。 | 已删除，不再支持或不再可用。由 SQL Server 性能条件警报替换。删除所有对 SQL 警报器的引用，并替换为对 SQL Server 性能条件警报的引用。有关更多信息，请参见定义警报。


DECnet 网络库（级别 1）
SQL Server 6.x | SQL Server 2000
对于基于 Intel、基于 MIPS 和基于 Alpha AXP 的计算机，服务器 DECnet 套接字 Net-Library 允许运行在 VMS 上的客户端连接到 SQL Server，从而提供 PATHWORKS 网络的连通性。 | 已删除，不再支持。删除所有对 DECnet 套接字Net-Library 的引用。


空字符串（级别 2）
SQL Server 6.x | SQL Server 2000
空字符串可解释为 NULL 或一个单个空格字符。 | 空字符串的解释由兼容级别控制，而兼容级别由 sp_dbcmptlevel 系统存储过程设置。如果兼容级别小于或等于 65，则 SQL Server 将空字符串解释为单个空格。如果兼容级别等于 70 或 80，则 SQL Server 将空字符串解释为空字符串。有关更多信息，请参见 sp_dbcmptlevel。 与 SQL Server 的早期版本比较，空字符串的解释应不同。Transact-SQL 函数和语句受 sp_dbcmptlevel 设置的影响，包括CHARINDEX、DATALENGTH、LEFT、LTRIM、PATINDEX、REPLICATE、RIGHT、RTRIM、SPACE、SUBSTRING 和 UPDATETEXT。


系统表（级别 1）
SQL Server 6.x | SQL Server 2000
系统表由 SQL Server 内部使用，存在很多用途，包括维护 SQL Server 可使用的字符集列表，并包含关于活动锁的信息。 | 系统表已进行了重大更改。大多数 SQL Server 6.x 系统表将继续正常工作。提供的视图允许引用 SQL Server 6.x 系统表的应用程序继续正常发挥功能。但是，某些 SQL Server 2000 数据将不能通过这些视图引用。使用提供的信息架构视图 或 ODBC 目录系统存储过程 获得系统表信息。按实际需要修改脚本。任何引用 SQL Server 6.x 系统表的脚本都将不能正确转换。
sysdevices 为每个磁盘转储、磁带转储和数据库设备包含一行。 | mirrorname 和 stripeset 列已删除。Sysdevices 仅为转储设备保留，也为向后兼容性保留（支持 DISK INIT 和 SQL Server 6.x 的 CREATE DATABASE 语法）。删除所有对 sysdevices 的 mirrorname 和 stripeset 列的引用。
syshistory 为每个已调度事件、警报或发生的任务包含一行。 | 由 sysjobhistory 替代。删除所有对 syshistory 的引用，并替换为对 sysjobhistory 的引用。
sysindexes 为每个聚集索引包含一行，并且为每个非聚集索引包含一行。 | distribution、segment、rowpage、keys1 和 keys2 列已删除。删除所有对 sysindexes 的 distribution、segment、rowpage、keys1 和 keys2 列的引用。 另外，soid 是 reserved3，csid 是 reserved4。
syskeys 用于对象 | 已删除；没有替代项。删除所有对 syskeys 的引用。
syslocks 包含有关活动锁的信息。 | 已删除；由 syslockinfo 替代。删除所有对 syslocks 的引用，并替换为对 syslockinfo 的引用。
syslogs 包含事务日志。 | 已删除；没有替代项。数据库日志现在为操作系统文件。删除所有对 syslogs 的引用。
sysprocesses 包含有关 SQL Server 进程的信息。 | gid 列已删除。在 SQL Server 中，suid 列已删除。删除所有对 sysprocesses 的这些列的引用。
sysprocedures 包含用于每个视图、默认、规则、触发器和 CHECK 约束，以及 DEFAULT 约束和存储过程的条目。 | 已删除；由 syscomments 替代。当过程需要编译时，SQL Server 从 syscomments 获得过程文本。删除或注释掉所有对 sysprocedures 的引用，并替换为对 syscomments 的引用。
syssegments 为每个段（所谓磁盘碎片集合）包含一行。 | 已删除；没有替代项。不再支持段。由文件组代替。删除所有对 syssegments 的引用。通过使用 CREATE DATABASE、ALTER DATABASE、CREATE TABLE、ALTER TABLE和 CREATE INDEX 使用文件组代替。
systasks 为每个已调度任务包含一行。 | 已删除，由 sysjobs、sysjobsteps 和 sysjobservers 替代。删除所有对 systasks 的引用，并按实际需要替换为对 sysjobs、sysjobsteps 和 sysjobservers 的引用。
sysusages 为指派给数据库的每个磁盘分配块包含一行。 | 已删除；没有替代项。SQL Server 依靠 sysdevices 获得数据库文件信息。支持文件组，并且添加 sysfiles 和 sysfilegroups 系统表。这些系统表驻留在每个数据库中，并描述数据库文件和文件组。删除所有对 sysusages 的引用。
master.dbo.spt _datatype_info | 已删除；没有替代项。删除所有对 master.dbo.spt_datatype_info 的引用。

有关更多信息，请参见系统表。


UPDATE（级别 2）
SQL Server 6.x | SQL Server 2000
若将 ARITHABORT 设置成 OFF，则 UPDATE 语句在遇到算术溢出情况时会将更新值设置为 NULL，如果值属于非空列则跳过更新。 | 当 SET ARITHABORT 为 OFF 且 INSERT、UPDATE 或 DELETE 语句遇到算术错误时，SQL Server 将插入或更新 NULL 值。如果目标列不可为空，则插入或更新操作失败并且用户收到错误信息。 与 SQL Server 早期版本相比，应该有不同的结果。在 UPDATE 或 INSERT 语句后使用 @@ERROR 函数测试错误。


数据库（级别 1）
SQL Server 6.x | SQL Server 2000
ALTER DATABASE 的 ON database_device = size 子句以 MB 为单位指定分配给数据库扩展的空间量，并可用在 DISK INIT 后更改数据库设备大小。 | 如果最初不是由 DISK INIT 所创建，则 ON database_device = size 语法无法与 ALTER DATABASE 一起指定。可用 ALTER DATABASE 的 MODIFY FILE 子句作为替代方式更改数据库文件的大小。删除所有对 ALTER DATABASE 的 ON database_device = size 子句的引用。有关更多信息，请参见 ALTER DATABASE。


键集游标（级别 2）
SQL Server 6.x | SQL Server 2000
当使用键集游标时，在行删除后插入行，而插入行使用与已删除行相同的键，将导致插入行占据原始行的槽。 | 当使用键集游标时，在行删除后插入行，而插入行使用与已删除行相同的键，允许原始行保持空，而新插入的行插入到末尾。 与 SQL Server 早期版本相比，应该有不同的结果。当使用键集游标插入和删除带有相同键值的行时，行为应有所更改。


DB-Library（级别 2）
SQL Server 6.x SQL Server 2000
当连接到 6.x 版 SQL Server 时，对 dbcursorfetchex 的调用导致游标结果集结尾后的游标位置，返回：
  • FAIL，带有键集或不感知游标。

  • SUCCEED，并且所有行状态指示器设置为 0，带有动态游标或前向游标。
 对 dbcursorfetchex 的调用导致游标结果集结尾后的游标位置，返回 SUCCEED。所有行状态指示器设置为 0。该行为应用于所有类型的游标。

与 SQL Server 早期版本相比，应该有不同的结果。当对 dbcursorfetchex 的调用导致游标结果集结尾后的游标位置时，与 SQL Server 6.x 比较，结果应不同。若要获得 SQL Server 6.x 行为，请使用兼容级别 65。


索引（级别 2）
SQL Server 6.x | SQL Server 2000
当用于聚集索引时，DROP INDEX 语句除去控制聚集索引 B 树的页。 | 在聚集索引上，DROP INDEX 语句必须重建所有非聚集索引。SQL Server 也必须使用行指针替换非聚集叶中的聚集索引键。 与 SQL Server 早期版本相比，应该有不同的结果。如果，例如除去或重创聚集索引以设置新填充因子，则使用 CREATE INDEX 语句的 DROP_EXISTING 子句。


复制（级别 1）
SQL Server 6.x | SQL Server 2000
受限发布能通过用户界面创建，并在复制数据中使用。 | 受限发布无法通过用户界面创建，并且不再支持。删除所有对受限发布的引用。受限发布的替换项将在未来版本中可用。有关更多信息，请参见复制概述。
发布和订阅属性可用 DBOption 对象设置。 | 不再可用。删除所有对 DBOption 对象的引用，并替换为对 ReplicationDatabase 对象的 EnablePublishing 属性的引用。
repl_publisher 登录允许分发服务器上的复制处理连接到订阅服务器上，并将表架构和数据复制到目的数据库中。 | 不再可用。删除所有对 repl_publisher 登录的引用，并替换为对发布访问列表 (PAL) 中登录的引用。有关 PAL 的更多信息，请参见发布访问列表。


系统存储过程（任务）（级别 1）

将以下不再支持的 Microsoft® SQL Server™ 6.x 与任务相关的系统存储过程替换为相应的 SQL Server 2000 与作业相关的系统存储过程。

SQL Server 6.x | SQL Server 2000
sp_addalert | sp_add_alert
sp_addnotification | sp_add_notification
sp_addoperator | sp_add_operator
sp_dropalert | sp_delete_alert
sp_dropnotification | sp_delete_notification
sp_dropoperator | sp_delete_operator
sp_helpalert | sp_help_alert
sp_helphistory | sp_help_jobhistory
sp_helpnotification | sp_help_notification
sp_helpoperator | sp_help_operator
sp_purgehistory | sp_purge_jobhistory
sp_runtask | sp_start_job
sp_stoptask | sp_stop_job
sp_updatealert | sp_update_alert
sp_updatenotification | sp_update_notification
sp_updateoperator | sp_update_operator

任务管理更改为作业管理。


数据访问对象 (DAO)（级别 1）
SQL Server 6.x | SQL Server 2000
当访问 SQL Server 6.x 版服务器时，数据访问对象 (DAO) 3.x 版可正常运行。 | 因为当连接到 SQL Server 时，随 SQL Server 2000 一起提供的 ODBC 驱动程序表现新的全局唯一标识符 (GUID) 和 Unicode 数据类型，所以 DAO 3.x 版在 SQL Server 2000 中不能正常工作。不过，提供了 odbccmpt 实用工具以启用 SQL Server 6.x 版 ODBC 与 DAO 应用程序的兼容性。


事务（级别 1）
SQL Server 6.x SQL Server 2000
不在事务中的数据类型转换错误向 SQL Server 返回错误。如果数据类型转换发生在事务中，则事务继续。例如：
USE pubs
CREATE TABLE test (c1 int)
GO
BEGIN TRANSACTION
GO
INSERT INTO test VALUES (1)
GO
INSERT INTO test VALUES ('aaa')
GO
COMMIT TRANSACTION
GO
SELECT *
FROM test
 当尝试数据类型转换失败时，SQL Server 返回一个错误。如果数据类型转换错误发生在事务中，则终止事务。如果数据类型转换失败发生在事务中，与 SQL Server 早期版本比较在行为上应不同。


系统存储过程（常规扩展过程）（级别 1）
SQL Server 6.x | SQL Server 2000
xp_snmp_getstate 返回 SQL Server 简单网络管理协议 (SNMP) 代理的状态。xp_snmp_raisetrap 允许客户端定义并向 SNMP 客户端发送陷阱（SNMP 警报）。 | 已删除，不再可用。删除所有对 xp_snmp_getstate 或 xp_snmp_raisetrap 的引用。


DBCC（级别 1）
SQL Server 6.x | SQL Server 2000
DBCC DBREINDEX 使用 SORTED_DATA 和 SORTED_DATA_REORG 子句。SORTED_DATA 子句消除创建聚集索引时执行的排序，物理重组数据。SORTED_DATA_REORG 子句消除当创建聚集索引时执行的排序。 | 已删除，不再支持。删除所有对 DBCC DBREINDEX 语句的 SORTED_DATA 或 SORTED_DATA_REORG 子句的引用，并替换为对 CREATE INDEX 的 DROP_EXISTING 子句的引用。
DBCC SHRINKDB 返回数据库可收缩到的最小值，或将指定数据库的大小收缩到指定值。 | 已删除，不再支持或不再可用。删除所有对 DBCC SHRINKDB 的引用，并替换为对 DBCC SHRINKDATABASE的引用。考虑使用 ALTER DATABASE 的 AUTO_SHRINK 选项自动收缩数据库。
DBCC MEMUSAGE 提供关于内存使用的详细报告。 | 已删除，不再支持或不再可用。删除所有对 DBCC MEMUSAGE 的引用，并替换为对这些性能监视器计数器的引用。

性能监视器对象名 | 性能监视计数器名
SQL Server:Buffer Manager Object | 正在使用的过程高速缓存页
 | 过程高速缓存大小（页）
SQL Server:Cache Manager Object | 高速缓存命中率
 | 过程高速缓存页
 | 过程高速缓存对象计数*

* 各种分类的高速缓存对象均可以使用这些计数器，包括特殊 sql、准备好的 sql、过程、触发器等。


开放式数据服务（级别 1）

在 SQL Server 2000 中，开放式数据服务（现在称为扩展存储过程）不再支持网关应用程序。

SQL Server 6.x | SQL Server 2000
ODBC 客户端用开放式数据服务网关的 ODBC 客户端驱动程序 (ODSGT32.DLL) 和相关的资源文件连接到开放式数据服务网关服务器。 | 不随 SQL Server 2000 一起提供。SQL Server 6.x 版的 ODSGT32.DLL 和相关的资源文件在用 SQL Server 7.0 版的头文件和库重新编译的开放式数据服务网关上有效。使用开放式数据服务的 SQL Server 6.x 版 ODBC 客户端驱动程序 (ODSGT32.DLL) 和相关的资源文件建立从 ODBC 客户端到开放式数据服务网关的连接。 考虑使用 Windows NT 组件服务重新设计应用程序。
开放式数据服务的数据结构，例如 SRV_CONFIG、SRV_PROC 和 SRV_SERVER 表现在开放式数据服务的头文件中。 | 这些数据结构不再出现，并且数据结构成员已发生更改。直接引用这些数据结构或其成员的应用程序必须更改或使用 SQL Server 7.0 开放式数据服务头文件 (srv.h) 重新编译，并使用 SQL Server 7.0 开放式数据服务库文件 (opends60.lib) 重新链接。应进行上述更改以避免服务器失败的可能性。
SQL Server 的早期版本可以对遵从开放式数据服务 6.x 或 4.x 版的网关调用进行远程存储过程。 | SQL Server 2000 不支持对遵从开放式数据服务 6.x 和 4.x 版的网关的远程存储过程调用。SQL Server 2000 支持对遵从 SQL Server 2000 的网关的远程存储过程调用。用开放式数据服务早期版本编译并链接的网关应使用 SQL Server 7.0 版的开放式数据服务重新编译。如果目标数据源在 Windows NT 或 Windows 95/98 上具有 ODBC 或 OLE DB 提供程序，则考虑使用分布式查询。