运行升级向导之后,检测到系统出现的问题如下:
一、在 90 或更高的兼容模式下,FOR XML AUTO 查询返回派生表引用
请考虑下表:
CREATE TABLE Test(id int);
INSERT INTO Test VALUES(1);
INSERT INTO Test VALUES(2);
下面包括派生表的查询在兼容级别分别为 80、90 或更高时产生不同的结果:
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id)
AS DerivedTest
FOR XML AUTO;
当兼容级别为 80 时,查询返回以下结果。结果引用派生表的基表别名 a
和 b
,而非派生表别名。
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>
当兼容级别为 90 或更高时,查询返回针对派生表别名
DerivedTest
的引用,而非针对派生表基表的引用。
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>
根据要求修改应用程序,以解决 FOR XML AUTO 查询(包括派生表并且在 90 或更高的兼容级别下运行)的结果发生变化这一问题。
二、删除对未记录的系统表的引用
在早期版本中未记录的许多系统表都已更改或不再存在,因此,如果使用这些表,在升级到 SQL Server 2008 之后可能会出现错误。由于升级顾问查找的是针对系统表名称的引用,因而它将报告任何与系统表同名的用户表。
三、全文搜索已在 SQL Server 2008 中发生更改
若干个全文搜索功能、设置和对象已在 SQL Server 2008 中得到修改,并且升级时不会维护许多现有设置。
四、在 90 或更高的兼容模式下不支持外部联接运算符 *= 和 =*
升级顾问检测到使用了外部联接运算符 *= 和 =*。在 90 或更高的兼容模式下不支持这两个运算符。升级到 SQL Server 2008 时,用户数据库将保持其兼容模式。在 80 兼容模式下,支持用于外部联接的 *= 和 =* 运算符,但会显示一条警告消息。如果将数据库兼容模式改为 90 或更高,则使用这两个运算符的语句将失败。
在将数据库兼容模式改为 90 或更高之前,将使用外部联接运算符 *= 和 =* 的语句修改为使用等效的 OUTER JOIN 关键字。下面的示例显示了使用 *=
运算符的查询和使用 LEFT OUTER JOIN
关键字的等效查询。
-- This query uses an old-style outer join operator.
USE pubs
SELECT employee.job_id, employee.emp_id,
employee.fname, employee.minit, jobs.job_desc
FROM employee, jobs
WHERE employee.job_id *= jobs.job_id
ORDER BY employee.job_id
-- This query uses the ANSI standard keywords LEFT OUTER JOIN.
USE pubs;
SELECT employee.job_id, employee.emp_id,
employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON
employee.job_id = jobs.job_id
ORDER BY employee.job_id
五、在 SQL Server 2005 或更高版本中,ORDER BY 子句中的列别名不能以表别名作为前缀。
执行出错的排序:
USE AdventureWorks;
GO
SELECT FirstName AS f, LastName AS l
FROM Person.Contact p
ORDER BY p.l
可改为:
USE AdventureWorks;
GO
SELECT FirstName AS f, LastName AS l
FROM Person.Contact p
ORDER BY l
USE AdventureWorks;
GO
SELECT FirstName AS f, LastName AS l
FROM Person.Contact p
ORDER BY p.LastName
分享到:
相关推荐
从SQL Server 2000升级至SQL Server 2008 R2实验手册
5种方法从sql server 2000升级到2005
1、如果是从SQL2008升级到SQL2008R2那么只能选择左侧“安装”对应右侧“从SQL SERVER 2000,SQL 2005或SQL 2008升级”这个选项来升级。 大家也注意到有一个“维护”但是这个选项是“从SQL 2008其他例如EXPRESS版本...
sql server2000 jdbc java连接sql server2000必备
SQL Server 2000完结篇系列之三:数据并发-彻底掌握SQL Server 2000事务机制
sqlserver2000个人版 sqlserver2000企业版 sqlserver2000开发版
sqlserver2000升级到2005.doc
如果你计划将数据库从SQL Server 2000升级到SQL Server 2005。你在升级之前一定会测试每样东西,并且证明应用程序是稳定的。本文介绍了保持原有SQL Server环境最新的方法。
将sql server 2000升级到sql server 2005视频教程
压缩包内附带链接服务器创建脚本方式,此SQL Server Native Client 10.0无病毒,有64位和32位可供选择。...安装完SQL Server Native Client 10.0后再创建个链接服务器,可以实现高版本SQLserver远程链接SQLserver2000。
此链接库针对使用机器码 API (ODBC、OLE DB 和 ADO) 的应用程序提供运行时间支持,以连接到 Microsoft SQL Server 2000、2005 或 2008。SQL Server Native Client 应该用来建立新的应用程序,或者加强需要利用新 SQL...
jdbc连接sqlserver2000数据库的驱动包;包含msbase jar mssqlserver jar msutil jar 注意事项:下载解压sql包 数据源驱动 rar文件 解压后的驱动包文件应放到固定的文件夹下 以避免再次打开程序运行时 系统能找到驱动...
SQL Server 2000 审计功能
sqlserver2000-jdbc2.0驱动,sqljdbc4.jar 兼容sqljdbc.jar,可以直接使用sqljdbc4.jar
sql server 2000 试题汇编答案.rar
数据库驱动程序sqlserver2000驱动程序jar包下载及sqlserver2008驱动程序jar包下载
sqlserver2000jar包·························
里有msicuu2.exe,srvinstw.exe,前者是微软的卸载工具,后者是加载或卸载服务...以sql2005为例:先用msicuu2.exe卸载所有的sqlserver2005的应用程序,再卸载其服务,在用第三方软件清空注册表即可(我用的是优化大师)。