Frage Mehrere Zeilen in eine einzige SQL-Abfrage einfügen? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Ich habe mehrere Daten gleichzeitig einzufügen, sagen wir 4 Zeilen.

Meine Tabelle hat 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 Reihen in einem SQL statement?


1335
2018-01-17 05:55


Ursprung


Antworten:


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

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

Als Referenz hierzu lesen Sie den MOC-Kurs 2778A - Schreiben von SQL-Abfragen in SQL Server 2008.

Beispielsweise:

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

1770
2018-01-17 07:14



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

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

703
2018-01-17 06:10



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

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
...

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


112
2018-01-17 06:16



INSERT Aussagen, die verwenden VALUES Syntax kann mehrere Zeilen einfügen. Fügen Sie dazu mehrere Listen von Spaltenwerten ein, die jeweils in Klammern eingeschlossen und durch Kommas getrennt sind.

Beispiel:

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

69
2018-04-01 14:07