Hello,

Pour une extraction de données avec SQL serveur 2005, je voudrais insérer les résultats d'une requête récursive dans une table temporaire, histoire de pouvoir faire d'autres requêtes par la suite. Mais je bloque...

Ma requête pour avoir tous les composants et sous composants d'un produit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
WITH
   ProduitsDeBase (Composant, Parent) AS
   (
       SELECT composant, produit 
           FROM    nomenclature  
           WHERE produit = '100077500' 
       UNION ALL
       SELECT Enfant.composant, Enfant.produit 
           FROM ProduitsDeBase Parent, nomenclature Enfant 
           WHERE Parent.Composant = Enfant.composant
   ) 
   SELECT ProduitsDeBase.Composant, ProduitsDeBase.Parent
       FROM ProduitsDeBase
ça marche pas mal, mais comment faire pour insérer les résultats d'une table???

j'ai essayé avec

declare @comp varchar(15)
declare @par varchar(15)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WITH
   ProduitsDeBase (Composant, Parent) AS
   (
       SELECT composant, produit 
           FROM    nomenclature  
           WHERE produit = '100077500' 
       UNION ALL
       SELECT Enfant.composant, Enfant.produit 
           FROM ProduitsDeBase Parent, nomenclature Enfant 
           WHERE Parent.Composant = Enfant.composant
   ) 
   SELECT @comp = ProduitsDeBase.Composant, @par = ProduitsDeBase.Parent  FROM ProduitsDeBase
 
insert into tabletemporaie select @comp, @par
mais ça n'insert qu'une ligne (normal...)

Quelqu'un connait une solution?? merci d'avance