Тұрақты кестеге қалай кіреді?

Менде басқа процедураны шақыратын осы сақталған рәсім бар (бұл деректердің кейбір жолдарын қайтарады).

Бірінші процедурада барлық жолдарды тұрақты кестеге кірістіріп, осы кестенің мазмұнын қайтару керек. Менде бар, бірақ уақытша кесте бар.

Тұрақты үстелге қалай салып, оны қайтара аламын?

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
INSERT INTO операторымен уақытша кестеге кірістіру кезінде тұрақты кестеге дәл солай кірістіріңіз. Жалғыз айырмашылық: басында # немесе ## бар кесте атауы - бұл уақытша кесте - әйтпесе ол тұрақты кесте.
қосылды автор marc_s, көзі
Неге жер бетінде курсорды пайдаланасыз? Курсорды пайдаланудың қажеті жоқ, және дерекқорды біреуі арқылы байланыстырмау керек. Курсорлар жиі (бұл жағдайда) SQL антипаттерні және ешқашан өндіріс кодексінде қолданылмауы керек. Курсормен бірге бірнеше аралық кірістірулерді өңдеу үшін деректерді енгізу немесе деректерді жаңарту үшін бір жазба протоколын қайта пайдалануыңыз керек емес. Бірнеше жазбаны кірістіруді дұрыс өңдеу үшін prod параметрін реттеңіз.
қосылды автор HLGEM, көзі
Тұрақты кестені жаңа кодпен кодты ауыстырған кезде немесе жинақталған деректерді қайтару қажет пе?
қосылды автор HLGEM, көзі

2 жауаптар

Сіз мұны уақытша кестені көшіріп алу үшін сақталған провайдердің төменгі жағында орындауға болады:

-- 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
1
қосылды

Сақталған процедураның нәтижесін рұқсат беруші дерекқор кестесіне сақтағыңыз келсе, келесі әрекеттерді орындауға болады:

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

Жоғарыда сұраныс маған жұмыс істеді ... бұл сен үшін де жұмыс істейді деп үміттенемін.

0
қосылды