Ich habe mehrere Datensätze auf einmal einzufügen, sagen wir 4 Zeilen. Meine Tabelle hat drei Spalten: Person", "ID" und "Büro".
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?
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 )
Eine Referenz dazu 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');
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');
Hinweis: 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 INSERT mit SELECT UNION ALL verwenden:
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.