Insertion de plusieurs lignes dans une seule requête SQL? [dupliquer]

cette question a déjà une réponse ici:

j'ai plusieurs ensembles de données à insérer à la fois, disons 4 lignes.

ma table a trois colonnes: Person , Id et 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");

puis-je insert les 4 rangées en une seule SQL statement ?

1388
demandé sur DineshDB 2009-01-17 08:55:54

4 réponses

dans SQL Server 2008, vous pouvez insérer plusieurs lignes en utilisant une seule instruction SQL INSERT.

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

pour référence à ceci, jetez un oeil au cours MOC 2778A - écrire des requêtes SQL dans SQL Server 2008.

par exemple:

INSERT INTO MyTable ( Column1, Column2, Column3 )
VALUES ('John', 123, 'Lloyds Office'), 
('Jane', 124, 'Lloyds Office'), 
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');
1840
répondu BinaryMisfit 2018-05-03 11:21:37

si vous insérez dans une seule table, vous pouvez écrire votre requête comme ceci (peut-être seulement dans MySQL):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
720
répondu too much php 2017-02-01 08:26:01

NOTE: cette réponse est pour SQL Server 2005. Pour SQL Server 2008 et plus tard, il y a des méthodes bien meilleures que celles décrites dans les autres réponses.

vous pouvez utiliser insérer avec SELECT UNION tous :

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

seulement pour les petits ensembles de données cependant, qui devrait être très bien pour vos 4 enregistrements.

118
répondu DavGarcia 2017-02-03 08:40:58

INSERT les énoncés qui utilisent la syntaxe VALUES peuvent insérer plusieurs lignes. Pour ce faire, incluez plusieurs listes de valeurs de colonne, chacune comprise entre parenthèses et séparée par des virgules.

exemple:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
70
répondu Sparkup 2011-07-29 11:00:19