Autor |
Beitrag |
bbfan
      
Beiträge: 164
|
Verfasst: Fr 21.04.06 10:35
Hallo Leute!
Wie kann ich mehrere INSERT zu einem zusammenfügen?
SQL-Anweisung 1: 2: 3:
| INSERT INTO (TAB1,TAB2) VALUES (1,2); INSERT INTO (TAB1,TAB2) VALUES (1,2); INSERT INTO (TAB1,TAB2) VALUES (1,2); |
sollte nachher wie folgt aussehen:
SQL-Anweisung 1:
| INSERT INTO (TAB1,TAB2) VALUES (1,2),(1,2),(1,2); |
Jedefalls geht das so mit mySQL. Aber wie sieht das bei ADO / msSQL aus?
Viele Grüße!
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 21.04.06 11:40
So geht das nicht. Auch mit mySQL nicht, denke ich, denn Du hast die Tabelle vergessen, aber egal.
Bei echten DBMS nimmt man dafür eine Transaktion (die ja mySQL < 5.x nicht kennt):
SQL-Anweisung 1: 2: 3: 4: 5:
| Begin Transaction INSERT INTO Tabelle (TAB1,TAB2) VALUES (1,2); INSERT INTO Tabelle (TAB1,TAB2) VALUES (1,2); INSERT INTO Tabelle (TAB1,TAB2) VALUES (1,2); commit transaction |
oder auch so:
SQL-Anweisung 1: 2: 3: 4: 5: 6:
| Insert into Tabelle select 1,2 union select 1,2 union select 1,2 |
_________________ Na denn, dann. Bis dann, denn.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 21.04.06 13:09
alzaimar hat folgendes geschrieben: | So geht das nicht. Auch mit mySQL nicht, denke ich, denn Du hast die Tabelle vergessen, aber egal.  |
Trotzdem kann, selbst MySQL 3 bereits die oben (nur syntaktisch unvollständige Version ausführen):
SQL-Anweisung 1:
| INSERT INTO Tabelle (TAB1,TAB2) VALUES (1,2),(1,2),(1,2); |
Inwiefern das die Teile von M$ kapieren steht dabei auf einem ganz anderen Blatt, da überlass ich mal alzaimar das Feld 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 21.04.06 14:28
Na ja, B€nB€, mySQL kann nun mal eben keine unvollständige SQL-Befehle ausführen, also auch kein "INSERT INTO (bla, Foo) ... " Darauf wollte ich doch hinaus, aber das hast Du ja bestimmt bemerkt. Hinterher vermutlich erst, aber immerhin.
_________________ Na denn, dann. Bis dann, denn.
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Fr 21.04.06 14:42
bei oracle geht folgendes:
insert into tabelle1 select spalte1, spalte2 from tabelle2. Dann macht er ein select auf tabelle2 und fügt die gefundenen zeilen mit den gewünschten spalten in tabelle 1 ein.
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 21.04.06 14:49
alzaimar hat folgendes geschrieben: |
oder auch so:
SQL-Anweisung 1: 2: 3: 4: 5: 6:
| Insert into Tabelle select 1,2 union select 1,2 union select 1,2 | |
_________________ Na denn, dann. Bis dann, denn.
|
|
|