Vstavljanje več vrstic v eno poizvedbo SQL?

Imam več podatkov, ki jih je treba vstaviti naenkrat, recimo 4 vrstice. Moja tabela ima tri stolpce: Oseba, Id in Urad.

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

Ali lahko vstavim vse 4 vrstice v enem samem stavku SQL?

V strežniku SQL Server 2008 lahko vstavite več vrstic z enim stavkom SQL INSERT.

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

Za referenco na to si oglejte MOC Course 2778A - Writing SQL Queries in SQL Server 2008.

Na primer:

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

Če vstavljate v eno samo tabelo, lahko poizvedbo zapišete takole (morda samo v MySQL):

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

OPOMBA: Ta odgovor velja za strežnik SQL Server 2005. Za SQL Server 2008 in novejše obstajajo veliko boljše metode, kot je razvidno iz drugih odgovorov.

Uporabite lahko INSERT z SELECT UNION ALL:

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

Vendar le za majhne podatkovne zbirke, kar bi moralo biti v redu za vaše 4 zapise.

Komentarji (0)