[Optimisation] Insertion en masse !
Bonjour,
toujours des soucis d'optimisation pour mon SI !!
j'ai une requête A de sélection. Cette requête me retourne 2 champs c1 et c2
Code:
select c1, c2 from T1
maintenant, je veux insérer les résultats de cette requête en masse dans une autre table, c fesable :
Code:
1 2 3
| Insert into T2 (ct1, ct2, ct3)
select 1, 'aaaa' + c1, 'bbbb' + c2
From T1 |
ce code fonctionne et il est simple ... MAIS ... en effet les champs ct1 et ct2 de la table T2 forment la clé primaire et pous plusieurs raisons, le champs ct1 est un numérique qui doit s'incrémenter (d'habitude je fais un Max(ct1)+1)
ici pour simplifier l'exemple, j'ai enlevé la clé et j'ai toujours inséré 1
Jusuq' a maintenant, je fait tout ceci par code VB (oui trés lourd à faire) c'est à dire l'incrémentation !!!
si je fais
Code:
1 2 3 4
| Insert into T2 (ct1, ct2, ct3)
select Max(ct2)+1, 'aaaa' + c1, 'bbbb' + c2
From T1, T2
Groupe by c1, c2 |
ceci ne marche pas par ce qu'il prend le premier max et insère la taotalité en incrémentant juste une seule fois !!
Est ce que je dois gérer ceci par une procédure stocké ?
Avez vous des suggestions ?
En vous remerçiant.