我试图在第一个插入的索引插入第二个表的同时更新2个表。 sql看起来像这样:
DECLARE @nrTable table (TXT_nr int)
IF NOT EXISTS (SELECT txt FROM tbl1 WHERE txt = (?))
INSERT INTO tbl1 (txt, new) OUTPUT INSERTED.nr INTO @nrTable VALUES((?), 1)
IF NOT EXISTS (SELECT txt FROM tbl1 WHERE txt =(?))
INSERT INTO tbl2 (TXT_nr, field1, field2)
VALUES((SELECT TXT_nr FROM @nrTable), (?), (?))
WHERE field3 = (?) AND field4 = (?)
我正在尝试使用
来实现这一目标this.jdbcTemplate.batchUpdate(sql, batch);
简单地使用基本字符串连接java中的行。但这似乎只执行第一个语句。 现在,我不想以事务方式执行此操作的原因是,由于ouput-clause,我必须使用一次只插入一个批处理对象的循环。这将导致对sql-server的大量调用。
有没有任何已知的方法来完成这样的事情?
答案 0 :(得分:0)
您不能以这种方式使用batchupdate。请参阅此文档http://tutorials.jenkov.com/jdbc/batchupdate.html
为了实现您的目标,如果您在sql中使用序列,那么您需要在java中获取新值并将其存储在查询中。像这样:
MVC