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 版(或早期版本)的实例上。如果试
图这么做,则可能会收到下面消息中的一个:
"无效的类字符串。"
"参数不正确。"
两条消息都指明:当前的服务器并不包含用于装载该包所必须