Imbriquer stockés les résultats de la procédure de l'appel de procédure stockée Sql Server 2008
Est-il possible d'utiliser les résultats d'une procédure stockée dans une autre procédure stockée?
I. e.
CREATE PROCEDURE [dbo].[Proc1]
@ID INT,
@mfgID INT,
@DealerID INT
AS
BEGIN
DECLARE @Proc1Result UserDefinedTableVariable
EXEC @Proc1Result = Proc2
@SomeID = @ID,
@SomeID2 = @mfgID,
@SomeID3 = @DealerID
-- Now I want to use the table returned by the stored procedure here.
SELECT [col1],[col2] FROM @Proc1Result
END
J'ai essayé d'utiliser INSERT INTO @Proc1Result EXEC Proc2 (with parameters passed)
, mais INSERT EXEC
ne peut pas être appelée dans une étude déclaration.
Est-il possible de réaliser cela? L'environnement est SQL Server 2008.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez imbriquer des procédures stockées jusqu'à 32 niveaux.
Je vous recommande de lire plus de cet article concernant l'INSERTION-EXEC. Voici une snippit:
Vous avez raison,
INSERT ... EXEC
ne peut pas imbriquer. De Comment Partager des Données Entre des Procédures Stockées.Vous avez besoin de trouver une autre façon. Erland l'article lié passe par à peu près toutes les options que vous avez et en discute en détail.
Une syntaxe pour l'obtention de résultats dans une sp de l'autre est:
Mais vous devez créer d'abord la table qu'il insère dans et les noms de champ et de types doivent correspondre exactement.