Возвращает таблицу из хранимой процедуры

#sql #sql-server-2008 #stored-procedures

#sql #sql-server-2008 #хранимые процедуры

Вопрос:

У меня есть эта хранимая процедура, которая вызывает другую вторую хранимую процедуру, которая возвращает таблицу с 5 столбцами. Я вставляю результаты во временную таблицу в первой хранимой процедуре. Идея состоит в том, чтобы показать эту таблицу в отчете Crystal, поэтому мне нужна эта хранимая процедура для возврата временной таблицы.

Как я могу заставить ее возвращать таблицу с 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
  

Ответ №1:

Ну, наиболее очевидным решением является размещение в нижней части хранимой процедуры:

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

Это вернет данные сохраненному вызывающему процессу.

Комментарии:

1. 1: Фух… вы, должно быть, устали после обдумывания этого 😉

Ответ №2:

Почему это должно быть временным?

Могут ли данные таблицы просто обновляться каждый раз? Тогда вы не столкнетесь с проблемой уничтожения временной таблицы каждый раз, когда она выпадает из области видимости / контекста.

Комментарии:

1. Вы правы, как я могу вставить в постоянную таблицу?? Идея состоит в том, чтобы добавить каждую таблицу, возвращаемую вторым SP, в постоянную таблицу.