2011-10-27 6 views
1

私は5列のテーブルを返す他の第2のストアドプロシージャを呼び出すストアドプロシージャを持っています。最初のストアドプロシージャの一時テーブルに結果を挿入します。このテーブルはCrystal Reportに表示されるので、一時テーブルを返すためにはこのストアドプロシージャが必要です。ストアドプロシージャからテーブルを返す

5列の値を持つテーブルを返すようにするにはどうすればいいですか?

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 

答えて

3

まあ最も明白な解決策は、ストアドプロシージャの一番下に置くことです。

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

これは、ストアドプロシージャの呼び出し側にデータを返します。

+1

+1:ほら...あなたはそのことを考えた後に疲れるはずです;) –

0

なぜ一時的である必要がありますか?

毎回テーブルのデータを簡単にリフレッシュできますか?次に、スコープ/コンテキストから外れるたびに一時テーブルが破棄されるという問題にぶつからないようにします。

+0

あなたは正しいです、どのように永久的なテーブルに挿入できますか?アイデアは、永久テーブルに2番目のSPによって返された各テーブルを追加することです。 – ale

関連する問題