使用索引视图或计算列上的索引时,下列6个SET 选项为什么必须设置成ON?各是什么含义呢?
ANSI_NULLS
ANSI_PADDING
ANSI_WARNINGS
ARITHABORT
CONCAT_NULL_YIELDS_NULL
QUOTED_IDENTIFIERNUMERIC_ROUNDABORT为什么又设置成OFF呢?

解决方案 »

  1.   

    SET 选项设置
    任何对 Transact-SQL 语句生成结果有影响的 SET 选项对所有引用索引的操作都必须具有相同的设置。有七个 SET 选项影响计算列中的存储结果和视图返回的结果。所有使用索引视图或计算列上的索引的连接对这七个选项必须具有相同的设置: 下列六个 SET 选项必须设置为 ON: 
    ANSI_NULLS
    ANSI_PADDING
    ANSI_WARNINGS
    ARITHABORT
    CONCAT_NULL_YIELDS_NULL
    QUOTED_IDENTIFIER 
    必须将选项 NUMERIC_ROUNDABORT 设置为 OFF。 
    必须为在视图或计算列上创建索引的所有连接正确设置上述 SET 选项。任何执行 INSERT、UPDATE 或 DELETE 语句更改索引中存储的数据值的连接都必须具有正确的设置。这包括大容量复制、数据转换服务 (DTS) 和复制操作。对于不具有正确选项设置的连接所尝试的插入、更新或删除操作,Microsoft® SQL Server™ 2000 将生成一个错误并回滚这些操作。如果连接不具有正确的选项设置,则优化器不考虑在任何 Transact-SQL 语句的执行计划中使用计算列索引或视图索引