2038 Stimmen

Mehrere Zeilen in einer einzigen SQL-Abfrage einfügen?

Ich habe mehrere Datensätze auf einmal einzufügen, sagen wir 4 Zeilen. Meine Tabelle hat drei Spalten: Person , Id y 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 alle 4 Zeilen in einer einzigen SQL-Anweisung einfügen?

2719voto

BinaryMisfit Punkte 27769

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

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

Als Referenz dazu sehen Sie sich den MOC-Kurs 2778A - Schreiben von SQL-Abfragen in SQL Server 2008 an.

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

896voto

too much php Punkte 85034

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

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

157voto

DavGarcia Punkte 18140

NOTA: Diese Antwort bezieht sich auf SQL Server 2005. Für SQL Server 2008 und später gibt es viel bessere Methoden, wie in den anderen Antworten beschrieben.

Sie können verwenden INSERT mit SELECT UNION ALL :

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

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

94voto

INSERT Anweisungen, die VALUES Syntax können mehrere Zeilen eingefügt werden. Dazu fügen Sie mehrere Listen von Spaltenwerten ein, die jeweils in Klammern gesetzt und durch Kommata getrennt sind.

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X