Sébastien Pertus
Nouveauté Sql Server 2008 : Insert multiple
Une nouvelle façon d'insérer plusieurs enregistrements avec une requête "Insert"
Par Sébastien Pertus publié le 10/10/2007 à 09:40, lu 15276 fois,
Tiens, une petite nouveauté apparue dans SQL Serveur 2008, enfin surtout une amélioration du langage T-SQL; l'insertion multiples.
Pour reprendre l'exemple de l' article sur les TVP précédent, où nous insérons 6 lignes dans une "Table Value Parameter", à grand coup de "copier-coller", il est possible maintenant de passer par une nouvelle syntaxe :

INSERT INTO mytable (champ 1, Champ2)

VALUES (Valeur1, Valeur2), (ValeurA, ValeurB), (ValeurX, ValeurY)

Dans notre exemple nous passons de l'ancienne syntaxe :

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (1, 0, '01/02/2007')

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (2, 1, '02/03/2006')

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (12, 0, null)

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (123, 1, null)

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (246, 0, null)

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate) VALUES (264, 1, null)

à une nouvelle :

INSERT INTO @tableTmp(ContactId, MustBeUpdate, UpdatedDate)

VALUES (1, 0, '01/02/2007') ,(2, 1, '02/03/2006'), (12, 0, null),              

(123, 1, null), (246, 0, null), (264, 1, null)

Bon codage !
 
» Démarrer une discussion