练习 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”文件夹,展开“AdventureWorks 4. 在详细信息面板中,查看表以确定是否有表被sys占有。 注意,标test被sys用户占有。 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 ON C.CustomerID=CA.CustomerID 16. 执行这个脚本来验证您已经进行了正确的修改。 17. 保存这个脚本 |