当你在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

运行存储过程,查询结果两张表,填充 da.Fill(ds); 时ds报错:       ”SELECT 失败 ,因为 下列 SET 选项 设置 正确 : ' ARITH ABORT '。……“     解决办法:存储过程里面加 Set ARITH ABORT ON 就ok 了。    即:BEGIN -- SET NOCOUNT ON added to prevent extra result
今天运行存储过程时报错“System.Data. Sql Client. Sql Exception: SELECT 失败 ,因为 下列 SET 选项 设置 正确 : ' ARITH ABORT '。 确保 SET 选项 正确 无误,可以用于 计算列上的索引视图和/或索引和/或筛选的索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作。。” 解决方案: 在 SQL 前加这一句: Set ARITH ABORT ON...
当你在 SQL Server 上试图更新一个索引视图引用的表时,你可能回收到如下有错误 INSERT 失败 ,因为 下列 SET 选项 设置 正确 : ' ARITH ABORT ' 在计算列或索引视图上创建或操作索引时, SET ANSI_NULLS   也必须为   ON。如果
工作表更新 失败 :UPDATE 失败 ,因为 下列 SET 选项 设置 正确 : ' ARITH ABORT '。 把当前连接的数据库选型修改下 ALTER DATABASE wfp SET ARITH ABORT on 转载于:https://www.cnblogs.com/cwfsoft/archive/2010/11/22/1884675.html...
linzhisong: