检查一下sql语句是否正确?看看字段的类型与插入的值的类型是否相符。

解决方案 »

  1.   


     访问和更改关系数据  
    在 ARITHABORT 和 ARITHIGNORE 均被设置为 ON 时使用
    如果 ARITHABORT 和 ARITHIGNORE 查询处理选项都设置为 ON,则 ARITHABORT 优先。ARITHABORT 和 ARITHIGNORE 是两种不同的选项;将其中一个设置为 ON 并不能自动将另一个设置为 OFF。例如,如果应用程序包含下面这些语句,则两种选项将均被设置为 ON:SET ARITHABORT ON
    SET ARITHIGNORE ON
    GO当在存储过程中执行 SET 语句时,新设置只在过程结束之前保持有效。在过程结束之后,该选项的连接设置将恢复为执行过程前的状态。 ANSI_WARNINGS 设置的效果
    ANSI_WARNINGS 设置将影响查询处理器的行为,而无论 ARITHABORT 和 ARITHIGNORE 的当前设置如何。例如,甚至当 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON 时,SQL Server 在遇到被零除或溢出错误时仍返回错误信息。下表对该行为进行了总结。ARITHABORT ANSI_WARNINGS 行为 
    ON ON 只终止语句。 
    ON OFF 终止批处理。 
    OFF ON 只终止语句。 
    OFF OFF 继续;值为 NULL。 请参见SET ANSI_WARNINGSSET ARITHABORTSET ARITHIGNORE©1988-2000 Microsoft Corporation。保留所有权利。
      

  2.   

    谢谢大家:)发现原因了,insert表的列中,有一列f1是通过公式从另外两列得到的:
    [f2]+[f3]
    而我对f1定义了unique索引,删除这个索引插入就成功了。
    请问我如何保证f1的唯一性呢?