statement - tsql insert from




Inserimento di più righe in una singola query SQL? (3)

In SQL Server 2008 è possibile inserire più righe utilizzando un'unica istruzione SQL INSERT.

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

Per riferimento a questo, dare un'occhiata al Corso MOC 2778A - Scrivere query SQL in SQL Server 2008.

Per esempio:

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

Ho più serie di dati da inserire contemporaneamente, diciamo 4 righe.

La mia tabella ha tre colonne: Person , Id e 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");

Posso insert tutte e 4 le righe in una singola SQL statement ?


Se stai inserendo in una singola tabella, puoi scrivere la tua query in questo modo (forse solo in MySQL):

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

NOTA: questa risposta è per SQL Server 2005. Per SQL Server 2008 e versioni successive, sono disponibili metodi molto migliori, come mostrato nelle altre risposte.

Puoi usare INSERT con SELECT UNION ALL :

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

Tuttavia, solo per i piccoli set di dati, che dovrebbe andare bene per i tuoi 4 record.





insert