# Batch Update/Insert



## HakBak (18. Jan 2010)

Hallo, 
ich schreibe via Batch, Updates in eine Datenbank:


```
stmt.addBatch("UPDATE tabelle1 SET tabelle1.wert1 = (SELECT wert1 from tabelle1_temp WHERE tabelle1_temp.id = tabelle1.id)");
stmt.addBatch("UPDATE tabelle1 SET tabelle1.wert2 = (SELECT wert2 from tabelle2_temp WHERE tabelle1_temp.id = tabelle1.id)");
int[] updateCounts = stmt.executeBatch();
```

Nun ist es so, dass ich, sollte kein Update möglich sein weil es die id noch nicht in der DB gibt, ein INSERT mache möchte. Ich würde gern, die ganze Sache mit dem Batch Update/Insert beibehalten. Mir fällt nur dazu leider keine Lösung ein.

Könnte ich vorher ein Select machen und die ids abgleichen, welche vorhanden sind und welche nicht? Oder gibts es eine einfachere Lösung?


----------



## homer65 (18. Jan 2010)

Wenn es sich um eine MySQL Datenbank handelt, kann man statt des UPDATE ein REPLACE benutzen.


----------



## HakBak (18. Jan 2010)

Leider handelt es sich um eine MS-SQL DB


----------



## maki (18. Jan 2010)

Du könntest mit TSQL eine Abfrage einbauen ob ein bestimmter Datensatz schon existiert.


----------



## MrWhite (18. Jan 2010)

Ab Version 2008 gibt es dort ausserdem ein MERGE-Statement wie bei Oracle.


----------

