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

当你在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,代码如下

Set ARITHABORT ON
GO
INSERT INTO ta ..

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

MyConnection.Execute("SET ARITHABORT ON");

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

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

还可以

4.ALTER DATABASE yourdb 
SET ARITHABORT ON

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值