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