一.产生原因
SQL2005后对SQL语法较为严谨,原本能在2000上跑的语句到了2005或者2008就不行了。一般出现这种情况是因为写的脚本中先进行增删改,最后又通过select想把结果查出来,此时使用executeQuery()就会报错。
二.解决方法
1)方法一:
在你写的SQL中或是存储过程中写上set nocount on 与 set nocount off
set nocount on
your sql
set nocount off
2)方法二:
检查你是否在用sqljdbc.jar,或是带1的版本,类似sqljdbc1xxx.jar。马上把它删掉,确保你在用sqljdbc4.jar这个版本的驱动,而且sqljdbc1xxx.jar不能与sqljdbc4.jar同存,同存会导致系统优先使用sqljdbc1xxx.jar,从而引发在执行SQL出现不兼容问题。最好把WEB SERVICE与项目下的lib文件夹都检查一遍。