Java y JBoss, con el servidor SQL. Mulitple insertar declaraciones en una consulta nativa utilizando EntityManager, que no trabaja; pero funciona en SQL

StackOverflow https://stackoverflow.com/questions/3812529

Pregunta

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();

utilizando el depurador eclpise puedo ver la cadena que se utiliza, funciona bien cuando copiar y pegar en SQL Server Management Studio - así que supongo que hay algo que ver con el pesebre entidad que no le gusta múltiples sentencias de línea / go ...

Cualquier consejo recibió con agradecimiento (sí que sé de StringBuilder, etc, etc), y el error que consigo es:

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

Editar Resulta inserción no es compatible con EntityManager y la clase de consulta. Así que tengo que usar ya sea una declaración preparada o conservar el objeto.

¿Fue útil?

Solución

A partir de la documentación MSSQL: "GO no es una instrucción de Transact-SQL, sino que es un comando reconocido por el sqlcmd y utilidades osql y editor de SQL Server Management Studio Código"

Es por eso que trabaja en SSMS, pero no cuando se envían 'directamente' a la base de datos. Sólo sacarlo de sus estados de cuenta insertarán por completo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top