com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。


环境:mybatis+SqlServer

完整错误:

### Cause: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获得结果。

mybatis代码

<insert id="addYanan" useGeneratedKeys="true" keyColumn="idgr" keyProperty="idgr">……</insert>

原本是正常的,在我加了个触发器之后就不正常了,触发器主要内容如下:

ALTER TRIGGER [dbo].[gerenateGrbh] ON [dbo].[YANAN] after INSERT 
AS
BEGIN 
      SET NOCOUNT ON;
      ……
    update  ……
END
END      

 

原因 触发器update的时候用到了YANAN表的主键id,mybatis中useGeneratedKeys="true",这时候需要加上触发器中SET NOCOUNT ON;(深层原因没太深究)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM