C'est de ce lien: Calling SP from SP
- Comment puis-je utiliser les résultats d'une procédure stockée dans un autre?
Tant que la procédure stockée ne produit qu'un résultat unique, la technique d'utilisation de la sortie d'une procédure stockée dans une autre est assez simple. La technique consiste à utiliser une table temporaire pour contenir les résultats de la procédure stockée et une instruction INSERT EXEC pour exécuter le sproc et enregistrer les résultats. Une fois que les résultats sont dans la table temporaire, ils peuvent être utilisés comme n'importe quelle autre donnée de table. Voici un exemple de procédure que nous pourrions vous réutiliser:
CREER PROC usp_Demo_AllAuthors comme
select * from pubs..authors
GO
Maintenant, voici une procédure stockée qui utilise les résultats de usp_Demo_AllAuthors:
create proc usp_Demo_SPUser en tant que
CREATE TABLE #Authors (
au_id varchar(11) NOT NULL PRIMARY KEY CLUSTERED,
au_lname varchar (40) NOT NULL ,
au_fname varchar (20) NOT NULL ,
phone char (12) NOT NULL,
address varchar (40) NULL ,
city varchar (20) NULL ,
state char (2) NULL ,
zip char (5) NULL ,
contract bit NOT NULL
)
-- Execute usp_Demo_AllAuthors storing the
-- results in #Authors
insert into #Authors
exec usp_Demo_AllAuthors
-- Here we use the #Authors table. This example only
-- only selects from the temp table but you could do much
-- more such as use a cursor on the table or join with
-- other data.
SELECT au_fName + ' ' + au_lname as [name]
, address+', '+city+', '+state+' '+zip [Addr]
from #Authors
DROP TABLE #Authors
GO
-Andrew Novick, Expert SQL Server
Je suis en train de votre code, mais obtenir un « Serveur: Msg 213, niveau 16, état 7, Procédure spGetApplicantList, ligne 371 Insérer Erreur: Nom de la colonne ou le nombre de les valeurs fournies ne correspondent pas à la définition de la table. " – DotNetRookie
Vous devez vous assurer que la table #TempResults est définie avec les mêmes colonnes que celles renvoyées par spGetApplicantList. Comme je ne connais pas les colonnes/types de données renvoyées par sproc, je viens de donner un exemple basique en supposant qu'il ne retournait qu'une seule colonne "LastName" de type VARCHAR (50) – AdaTheDev
Donc je suppose qu'il n'est pas possible d'insérer seulement une colonne LastName dans la table temporaire? Je dois refléter la table temporaire pour refléter les colonnes dans spGetApplicantList? – DotNetRookie