web-dev-qa-db-de.com

Einfügen mehrerer Zeilen in eine einzelne SQL-Abfrage?

Ich muss mehrere Daten gleichzeitig einfügen, z. B. 4 Zeilen.

Meine Tabelle enthält drei Spalten: Person, Id und Office.

_INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");
_

Kann ich insert alle 4 Zeilen in einem einzigen _SQL statement_?

1572
rits

In SQL Server 2008 können Sie mehrere Zeilen mit einer einzigen SQL INSERT-Anweisung einfügen.

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

Informationen hierzu finden Sie im MOC-Kurs 2778A - Schreiben von SQL-Abfragen in SQL Server 2008.

Zum Beispiel:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
2108
BinaryMisfit

Wenn Sie in eine einzelne Tabelle einfügen, können Sie Ihre Abfrage wie folgt schreiben (möglicherweise nur in MySQL):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
775
too much php

HINWEIS: Diese Antwort gilt für SQL Server 2005. Für SQL Server 2008 und höher gibt es viel bessere Methoden als in den anderen Antworten.

Sie können INSERT mit SELECT UNION ALL verwenden:

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

Nur für kleine Datensätze, was für Ihre 4 Datensätze in Ordnung sein sollte.

129
DavGarcia