SQL Server 2005数据库迁移与视图优化:70-431考试实战

需积分: 0 0 下载量 98 浏览量 更新于2024-09-25 收藏 1.06MB PDF 举报
SQL Server 2005数据库开发与实现(MCP_70-431)考试是针对Microsoft Certified Professional (MCP)认证的一项技能测试,主要考察考生对SQL Server 2005数据库管理、设计和维护的理解。以下是两道题目涉及的关键知识点: 第1题: **问题:如何确保在从SQL Server 2000导入客户数据到SQL Server 2005时,避免因外键引用失败导致的导入失败?** 在这个场景中,关键知识点是**参照完整性**和**触发器**的使用。当你在两个数据库间建立外键关联时,确保数据迁移的正确性非常重要。当选择A选项(删除外键并手动导入后重建)时,这可能会破坏原有的数据关系;B选项(创建CHECK约束)用于验证数据的完整性,但不能阻止错误的发生。而C选项(创建DMLINSTEADOF触发器)是最佳实践,因为它会在插入、更新或删除操作发生时立即执行,如果尝试插入的外键值无效,触发器会捕获错误,并将其记录到文件或表中,从而确保数据一致性,即使国别表没有对应记录也不会导致整个导入失败。D选项(DMLAFTER触发器)虽然也能记录错误,但它不会阻止错误的发生,因此不如C选项直接。 第2题: **问题:如何在SQL Server 2005中创建视图(v_Customer)并考虑索引优化?** 题目中提到的视图`v_Customer`是通过SELECT语句从`Customers`表中创建的,目的是展示部分列。为了创建索引,你需要考虑索引的效率。根据选项: - A. 将`Picture`列从`Varbinary(max)`改为`image`数据类型。这是不必要的,因为`image`类型更适用于存储图像数据,而非索引。对于包含大量二进制数据的列,`Varbinary(max)`可能更适合。 - B. 表名包含模式名。这不是创建索引时需要考虑的,模式名通常用于指定数据库对象所在的命名空间,与索引无关。 - C. 使用`WITH SCHEMABINDING`语句。这是一个关于临时表和永久存储过程的特性,不是创建普通索引的要求。 - D. 用`*`符号选择所有列。这可能导致索引过大且效率低,尤其是对于不需要频繁查询的所有列。 正确的做法是选择**不包含**A和D,因为它们不是创建索引时的优化措施。实际上,为了提高视图的查询性能,你应该只包含那些最常被用于WHERE子句中的列,并可能创建复合索引,如果多个列经常一起查询。 第1题的答案是C,第2题的答案是不包含A和D。这些知识点展示了在实际工作中处理数据库迁移和视图优化时需要注意的关键点。