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