SET ARITHABORT
在查询执行过程中发生溢出或被零除错误时终止查询。语法
SET ARITHABORT { ON | OFF }注释
如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。说明  如果 SET ARITHABORT 和 SET ARITHIGNORE 都没有设置,则 Microsoft® SQL Server™ 将在执行查询后返回 NULL 和一条警告信息。
如果 SET ARITHABORT 为 OFF 并且在对表达式的求值过程中 INSERT、DELETE 或 UPDATE 语句遇到算术错误(溢出、被零除或域错误),SQL Server 将插入或更新 NULL 值。如果目标列不可为空,则插入或更新操作失败并且用户收到错误信息。如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当遇到被零除或溢出错误时,SQL Server 仍返回错误信息。SET ARITHABORT 的设置是在执行或运行时设置,而不是在分析时设置。在计算列或索引视图上创建或操作索引时,SET ARITHABORT 必须为 ON。如果 SET ARITHABORT 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注意事项"。

解决方案 »

  1.   

    靠,不是airthabort,是arithabort
      

  2.   

    现在出现的问题不是SET arithabort的问题,可能是因为索引的问题导致它抛这个错出来,
    我设了服务器的SET设置,但还是出错,不知是不是没重建索引,所以索引里面的SET 设置都没起作用,难道要一个一个重建索引?有没人遇到这个问题的?
      

  3.   

    -- 检查指定的数据库, 并且重建所有索引USE 你的数据库名
    goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
    exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
    go
      

  4.   

    在insert ,update,delete操作出现.有可能是下面几个位置的问题:
    1. 触发器
    2. 计算列
    3. 视图