2011-10-27 5 views
1

J'ai cette procédure stockée qui appelle l'autre procédure stockée deuxième qui renvoie une table avec 5 colonnes. J'insère les résultats dans la table temporaire dans la première procédure stockée. L'idée est d'afficher cette table dans un rapport Crystal, j'ai donc besoin de cette procédure stockée pour retourner la table temporaire.Retour Table à partir de la procédure stockée

Comment puis-je faire pour retourner la table avec les 5 colonnes et les valeurs ??

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[paBltBuscarBoletasASA] @id_Asa int 
     -- Add the parameters for the stored procedure here 
AS 
DECLARE @Query int 
CREATE TABLE #tablaTemporal (Numero_Pregunta varchar, Numero_Boleta int, Cultivo varchar, Numero_Siembra int, Detalle_Error varchar) 
DECLARE miCursor CURSOR FOR 

       SELECT 
        localizacion.c_Fk_IdBoleta 
       FROM 
        Blt_Boleta as boleta, Fnc_Localizacion as localizacion 
       WHERE 
        boleta.c_Pk_IdBoleta = localizacion.c_Fk_IdBoleta AND 
        localizacion.si_CodAsa = @id_Asa 
OPEN miCursor 
FETCH NEXT FROM miCursor INTO @Query 

WHILE @@FETCH_STATUS = 0 
BEGIN 
INSERT INTO #tablaTemporal(Numero_Pregunta, Numero_Boleta, Cultivo, Numero_Siembra, Detalle_Error) exec dbo.paBltMarcarErroresBoleta @Query 

    FETCH NEXT FROM miCursor INTO @Query 
END 

CLOSE miCursor 
DEALLOCATE miCursor 

Répondre

3

Eh bien, la solution la plus évidente est de placer au fond de la procédure stockée:

SELECT Numero_Pregunta, Numero_Boleta, Cultivo, Numero_Siembra, Detalle_Error 
FROM #tablaTemporal 

Ceci renvoie les données à l'appelant de procédure stockée.

+1

+1: Ouf ... vous devez être fatigué après avoir réfléchi à celui-là;) –

0

Pourquoi cela doit-il être temporaire?

Les données de la table peuvent-elles simplement être rafraîchies à chaque fois? Ensuite, vous ne rencontrez pas le problème de la destruction de la table temporaire chaque fois qu'elle tombe hors de portée/contexte.

+0

Vous avez raison, comment puis-je insérer dans une table permanente ?? L'idée est d'ajouter chaque table renvoyée par le second SP dans la table permanente. – ale

Questions connexes