Doimiy jadvalga qanday kiritiladi?

Boshqa protseduralarni chaqiradigan (bu ba'zi ma'lumotlarni satrlarni qaytaradigan) ushbu o'zida saqlab yuradigan amaliyotim bor.

Birinchi tartibda men ushbu satrlarni doimiy jadvalga kiritishingiz va ushbu jadvalning tarkibini qaytarib olishim kerak. Menda bu bor, lekin vaqtinchalik stolda.

Qanday qilib doimiy jadvalga qo'shishim va uni qaytarishim mumkin?

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
qo'shib qo'ydi muallif marc_s, manba
INSERT INTO iborasi bilan vaqtinchalik jadvalga kiritganingizda xuddi shu tarzda doimiy jadvalga kiritasiz. Faqat farq: # yoki ## bilan jadval nomi vaqtinchalik jadvaldir - aks holda bu doimiy jadval.
qo'shib qo'ydi muallif marc_s, manba
Nima uchun yerda kursorni ishlatasiz? Kursordan foydalanishga hojat yo'q va ma'lumotlar bazasini bir-biriga bog'lashingiz shart emas. Cursors tez-tez (bu holatda bo'lgani kabi), bir SQL antipattern va ishlab chiqarish kodi deyarli hech qachon ishlatilmaydi. Kursor bilan bir nechta rcord qo'shimchalarini ishlov berish uchun ma'lumotni qo'shish yoki ma'lumotlarni yangilash uchun bitta yozuv yozishni qayta ishlatmaslik kerak. Bir nechta rekord qo'shimchalarni to'g'ri ishlatish uchun mahsulotni sozlang.
qo'shib qo'ydi muallif HLGEM, manba
Doimiy jadvalni har bir yangi kod bilan almashtirishingiz kerakmi yoki to'plangan ma'lumotni qaytarishingiz kerakmi?
qo'shib qo'ydi muallif HLGEM, manba

2 javoblar

O'zingizning saqlanadigan buyumingizning pastki qismida temp jadvalni doimiy ravishda ko'chirib olishingiz mumkin.

-- 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
qo'shib qo'ydi

O'zida saqlab turilgan amaliyot natijasini doimiy ma'lumotlar bazasiga saqlashni istasangiz, quyidagilarni bajarishingiz mumkin:

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

Yuqoridagi so'rovlar men uchun ishlagan ... umid qilamanki, siz uchun ham ishlaydi.

0
qo'shib qo'ydi