Как вставить в постоянный стол? - PullRequest
1 голос
/ 27 октября 2011

У меня есть эта хранимая процедура, которая вызывает другую процедуру (возвращает несколько строк данных).

В первой процедуре мне нужно вставить все эти строки в постоянную таблицу и вернуть содержимое этой таблицы,У меня есть это, но с временной таблицей.

Как вставить постоянную таблицу, а затем вернуть ее?

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 

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вы можете сделать это в нижней части вашего сохраненного процесса, чтобы скопировать временную таблицу в постоянную:

-- To insert into a permanent table
INSERT INTO MyPermanentTable (Numero_Pregunta, Numero_Boleta, Cultivo, 
                              Numero_Siembra, Detalle_Error)
SELECT Numero_Pregunta, Numero_Boleta, Cultivo, Numero_Siembra, Detalle_Error
FROM   #tablaTemporal

-- To get the result set that was added back to the caller
SELECT Numero_Pregunta, Numero_Boleta, Cultivo, Numero_Siembra, Detalle_Error
FROM   #tablaTemporal
0 голосов
/ 28 июня 2017

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

INSERT INTO MyPermenantTable Execute [dbo].[paBltBuscarBoletasASA] parameter1, parameter2

Вышеуказанный запрос сработал для меня ... надеюсь, он также сработает и для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...