A server error occured on the current command. The results, if any, should be discarded.

A server error occured on the current command. The results, if any, should be discarded.


近日公司有一个项目,该项目在C#调用SQL Server中的存储过程的时候发生了异常,奇怪的是该项目一直运行稳定,并且该异常只发生在特定的情况下。


Review了一下日志,重建了发生异常的现场,Debug了一下,错误信息是:

A server error occured on the current command. The results, if any, should be discarded.


直接在查询分析器Debug存储过程,几经周折,发现错误居然发生在下面这条语句中

INSERT INTO tbl(str, ...

错误信息是:

当前命令发生了严重错误。应放弃任何可能产生的结果。


注:搞笑的是只能特定的字符串INSERT到str字段中才会出异常,删掉几个字符再插入一下就没问题了


尝试了若干种办法,最后发现是由str上的索引导致的,执行下列语句后,问题成功解决:

DROP INDEX tbl.index_str;


CREATE NONCLUSTERED INDEX index_str ON tbl

(

str ASC

);


后来发现执行下述语句可以缓解这个问题


网上检索了一下,还有其他人也遇到了这个问题:

微软的原始说明:http://support.microsoft.com/kb/827366/en-us

这个也很经典,虽然不是同一个问题:http://blog.csdn.net/ghlfllz/article/details/8082982

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值