values - update sql




Insérer plusieurs lignes dans une seule requête SQL? (3)

Dans SQL Server 2008, vous pouvez insérer plusieurs lignes à l'aide d'une seule instruction SQL INSERT.

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

Pour plus d'informations, consultez le cours MOC 2778A - Ecriture de requêtes SQL dans SQL Server 2008.

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

Ma table comporte 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 lignes dans une seule SQL statement ?


Si vous insérez dans une table unique, 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');

Remarque: cette réponse est pour SQL Server 2005. Pour SQL Server 2008 et versions ultérieures, il existe des méthodes beaucoup mieux comme vu dans les autres réponses.

Vous pouvez utiliser INSERT avec SELECT UNION ALL :

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

Seulement pour les petits jeux de données, ce qui devrait être bon pour vos 4 enregistrements.





insert