技术开发 频道

执行SQL2000Side-by-side升级

练习 2: 修复升级问题

在此部分中,您将修复Upgrade Advisor报告的以下问题:

• 重命名用户sys
• Outer join 操作符 *= and =* 在90兼容性模式下不被支持

当在90兼容性模式下使用表提示时,指定WITH关键字

任务

详细步骤

重命名用户 sys.

1.       打开SQL Server Enterprise Manager,然后导航到默认实例的Security文件夹。

2.       Security文件夹中,在Logins下面双击sys,然后查看此登录的属性。

注意,这个登录帐户拥有默认数据库AdventureWorks2000,它是AdventureWorks2000数据库中db_owner角色的成员。

3.      Databases文件夹,展开AdventureWorks2000,然后点击Tables

4.      在详细信息面板中,查看表以确定是否有表被sys占有。

  注意,标testsys用户占有。

5.       以相同的方式,查看是否用户sys占有任何视图(views)和存储过程(stored procedures)。结果,用户sys没有占有。

6.       Security文件加下,右键点击Logins,然后点击New Login

7.       使用下列信息创建一个新的登录:

·         Name: newsys

·         Authentication: SQL Server Authentication

·         Password: Pa$$w0rd

·         Default database: AdventureWorks2000

·         Database access: AdventureWorks2000

·         Database role: db_owner

8.      打开SQL Query Analyzer

9.       执行下面的脚本来将表test的拥有者变为newsys

USE AdventureWorks2000

GO

EXEC sp_changeobjectowner 'sys.test','newsys'

注意: 在真实的环境中,一些程序,脚本,存储过程或者视图可能需要修改来引用新的对象名称。

10.    转换到SQL Server Enterprise Manager,验证用户sys不再占有表test

11.    Security文件夹下的Logins下,删除用户sys

修复outer join操作符和表提示

12.   转换到SQL Query Analyzer

13.   File菜单下,点击Open

14.   当提示保存更改时,点击No,然后转到C:\SQL Scripts\Script.sql

这是一个脚本文件,用于Upgrade Advisor检测表提示和outer join操作符问题。

15.    查看这个脚本,然后按照以下修改它:

USE AdventureWorks2000

GO

SELECT * FROM Customer WITH (Index(AK_Customer_AccountNumber))

GO

SELECT * FROM CUSTOMER C

   LEFT OUTER JOIN CustomerAddress CA

  ON C.CustomerID=CA.CustomerID

16.   执行这个脚本来验证您已经进行了正确的修改。

17.   保存这个脚本

0
相关文章