首页 > 其他 > 详细

执行存储过程异常的问题

时间:2015-07-15 09:20:35      阅读:300      评论:0      收藏:0      [点我收藏+]

昨天一直纠结于执行存储过程异常的问题,后来单独写了个demo测试了一下,又到网上找了找资料,最终解决了这个问题。

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

执行存储过程异常的问题

原文:http://www.cnblogs.com/zhao-2015/p/4647313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!