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
maintenant, je veux insérer les résultats de cette requête en masse dans une autre table, c fesable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part select c1, 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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Insert into T2 (ct1, ct2, ct3) select 1, 'aaaa' + c1, 'bbbb' + c2 From T1
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
ceci ne marche pas par ce qu'il prend le premier max et insère la taotalité en incrémentant juste une seule fois !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Est ce que je dois gérer ceci par une procédure stocké ?
Avez vous des suggestions ?
En vous remerçiant.
Partager