2017-02-14 1 views
1

J'ai 2 procédures p1 et p2 chacun donnant des résultats au format comme ci-dessousdynamique table à l'aide Procédure de sortie

exec p1----> #col1 #col2 
       P-1 52 
       P-2 25 

EXEC p2----> #col1 #col2 
       P-1 20 
       P-2 2 
       P-3 5 

Je veux appeler ces procédures dans une autre procédure qui exécutera la procédure à deux, créez une table temporaire et insérez le résultat de la deux table comme indiqué ci-dessous:

#col1 #col2 #col3 
P-1 52 20 
P-2 25 2 
P-3 NULL 5 

Je suis nouveau à l'aide de la table Temp toute aide serait appréciée. Ce code doit être exécuté dans le serveur SQL. Cordialement,

+0

Copie possible de [Insérer les résultats d'une procédure stockée dans une table temporaire] (http://stackoverflow.com/questions/653714/insert-results-of-a-stored-procedure-into-a-temporary- table) –

+0

Salut, j'ai essayé mais je lance une erreur. – rahul

Répondre

0

Je suppose que cela est ce que vous voulez .Essayez une fois qu'il peut vous aider à

Selon votre procédure de sortie suivre ci-dessous requête

create table #tempp (col1 varchar(50),col2 bigint) 

insert into #temp 
exec p1 

create table #tempp1 (col1 varchar(50),col2 bigint) 

insert into #tempp1 
exec p2 

select t1.col1,t.col2,t1.col2 from #tempp t 
full join #tempp1 t1 on t.col1=t1.col1 

J'ai créé des données d'échantillons que comme votre sortie de la procédure données et essayé dans ma db

   select * into #tempp from (
       select 'p-1' as col1,52 col2 
       union all 
       select 'p-2',25 
      ) as a 

       select * into #tempp1 from (
       select 'p-1' as col1,20 col2 
       union all 
       select 'p-2',2 
       union all 
       select 'p-3',5 
      ) as a 

select t1.col1,t.col2,t1.col2 from #tempp t 
full join #tempp1 t1 on t.col1=t1.col1 

Votre résultat ressemble

+------+------+------+ 
| col1 | col2 | col2 | 
+------+------+------+ 
| p-1 | 52 | 20 | 
| p-2 | 25 | 2 | 
| p-3 | NULL | 5 | 
+------+------+------+