代码之家  ›  专栏  ›  技术社区  ›  NimChimpsky

java和jboss,以及SQL server。使用entitymanager在本机查询中使用多个insert语句,不起作用;但在sql中起作用

  •  2
  • NimChimpsky  · 技术社区  · 15 年前
    String myQuery1  = "insert into mytable(mycol) values(myval) \ngo";
    String myQuery2  = "insert into mytable(mycol) values(myval2) \ngo";
    String myQuery = myQuery1 + myQuery2;
    
    Query query = myEntityManager.createNativeQuery(myQuery);
    List<?> insertResultList = queryInsertDefaults.getResultList();
    

    使用eclpise调试器,我可以看到所使用的字符串,当我复制并粘贴到SQLServerManagementStudio时,它可以正常工作-所以我猜这与EntityManger有关,它不喜欢多行语句/go?

     SQL Error: 102, SQLState: S0001
     Incorrect syntax near 'go'.
    

    编辑 原来entitymanager和查询类不支持插入。所以我必须使用一个准备好的语句或者持久化对象。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Pondlife    15 年前

    在MSSQL文档中:“GO不是Transact-SQL语句;它是由sqlcmd和osql实用程序以及SQLServerManagementStudio代码编辑器识别的命令。”