Meerdere rijen invoegen in een enkele SQL query?

Ik heb meerdere reeksen gegevens om in één keer in te voegen, zeg 4 rijen. Mijn tabel heeft drie kolommen: Persoon, Id en Bureau.

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

Kan ik alle 4 de rijen invoegen in een enkele SQL-instructie?

In SQL Server 2008 kunt u meerdere rijen invoegen met een enkele SQL INSERT statement.

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

Kijk voor referentie hiernaar in MOC Cursus 2778A - SQL Queries schrijven in SQL Server 2008.

Bijvoorbeeld:

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

Als u invoegt in een enkele tabel, kunt u uw query als volgt schrijven (misschien alleen in MySQL):

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

LET OP: Dit antwoord is voor SQL Server 2005. Voor SQL Server 2008 en later zijn er veel betere methoden, zoals te zien is in de andere antwoorden.

U kunt INSERT met SELECT UNION ALL gebruiken:

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

Maar alleen voor kleine datasets, wat prima zou moeten zijn voor jouw 4 records.

Commentaren (0)