2 votes

SQL Server : Insérer deux résultats de procédures stockées dans une table

J'ai deux procédures stockées sp1 y sp2

sp1 rend les résultats

value1 
------
   1    
   2
   3
   4
   5

sp2 rend les résultats

value2
------
   4    
   5
   6
   7
   8

J'ai une table appelée test qui a deux colonnes value1 y value2 comment insérer sp1 aboutir à value1 et sp2 aboutir à value2 colonne dans test la table ?

J'utilise ceci

  insert into test 
     exec [sp1], exec [sp2]

Il y a une erreur mais cela fonctionne pour une valeur unique, veuillez cliquer sur le lien suivant.

8voto

Gordon Linoff Points 213350

Le seul moyen auquel je peux penser est le suivant :

declare @t1 as table (id int identity(1,1), val int);
declare @t2 as table (id int identity(1,1), val int);

insert into @t1 (val)
    exec sp1;

insert into @t2 (val)
    exec sp2;

insert into test
    select t1.val, t2.val
    from @t1 t1 full outer join
         @t2 t2
         on t1.id = t2.id

0voto

Woot4Moo Points 14245

Si ce sont des fonctions, vous pouvez faire ce qui suit, en pseudo-code :

first_val = select sp1();  
second_val = select sp2();

insert into test values (first_val,second_val);

Ce site mai fonctionnent également :

insert into test values (select sp1(),select sp2());

Vous ne pouvez pas utiliser les procédures car il n'y a aucun moyen de retourner une valeur à partir d'une procédure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X