Meerdere rijen invoegen in één SQL-query?

Ik moet meerdere sets gegevens tegelijk invoegen, bijvoorbeeld vier rijen. Mijn tabel heeft drie kolommen: Person, Iden 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");

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


Antwoord 1, autoriteit 100%

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

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

Bekijk voor een referentie hier MOC-cursus 2778A – SQL-query’s 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');

Antwoord 2, autoriteit 35%

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

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

Antwoord 3, autoriteit 6%

OPMERKING: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:

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

Alleen echter voor kleine datasets, wat goed zou moeten zijn voor uw vier records.


Antwoord 4, autoriteit 4%

INSERT-instructies die de syntaxis VALUESgebruiken, kunnen meerdere rijen invoegen. Voeg hiervoor meerdere lijsten met kolomwaarden toe, elk tussen haakjes en gescheiden door komma’s.

Voorbeeld:

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

Other episodes