SELECT 失败,因为下列 SET 选项的设置不正确:'ARITHABORT'

来源:互联网 发布:二手摩托车交易软件 编辑:程序博客网 时间:2024/06/05 01:06

当你在SQL Server上试图更新一个索引视图引用的表时,你可能回收到如下有错误

INSERT 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'

在计算列或索引视图上创建或操作索引时,SET   ANSI_NULLS   也必须为   ON。如果   SET   ANSI_NULLS   为   OFF,计算列或索引视图上带索引的表上的   CREATE、UPDATE、INSERT   和   DELETE   语句将失败。SQL   Server   将返回一个错误,列出所有违反所需值的   SET   选项。另外,在执行   SELECT   语句时,如果   SET   ANSI_NULLS   为   OFF,则   SQL   Server   将忽略计算列或视图上的索引值并解析选择,就好象表或视图上没有这样的索引一样.

 

解决方案:

1.你必须在TSQL前Set ARITHABORT ON,代码如下

INSERT <wbr>失败,因为下列 <wbr>SET <wbr>选项的设置不正确: <wbr>'ARISet ARITHABORT ON
INSERT <wbr>失败,因为下列 <wbr>SET <wbr>选项的设置不正确: <wbr>'ARIGO
INSERT <wbr>失败,因为下列 <wbr>SET <wbr>选项的设置不正确: <wbr>'ARIINSERT INTO ta ..

2.在ADO中,你可以这样来写(C#代码)

MyConnection.Execute("SET ARITHABORT ON");

如果以上你都觉得很麻烦或由于一些原因没法更改,你可以尝试修改SQL Server服务器选项

3.exec sp_dboption 'yourdb','ARITHABORT','true'

还可以

4.ALTER DATABASE yourdb 
INSERT <wbr>失败,因为下列 <wbr>SET <wbr>选项的设置不正确: <wbr>'ARISET ARITHABORT ON

原创粉丝点击