Új hozzászólás Aktív témák

  • Ispy

    veterán

    válasz mr.nagy #3579 üzenetére

    Kell írni egy ciklust (CURSOR), ami összeállítja az INSERT utasítást egy változóba, amit az sp_executesql tárolt eljárással tudsz végrehajtani.

    A változó, amibe az insertet rakod legyen NVARCHAR(MAX), a futtatás meg vagy EXEC sp_executesql(@VÁLTOZÓ) vagy csak simán EXEC (@VÁLTOZÓ).

    Kábé a vázlata:

    DECLARE @C_ID INT
    DECLARE @CODE NVARCHAR(MAX)

    DECLARE cursor_neve CURSOR LOCAL STATIC FOR SELECT ID FROM TÁBLA

    OPEN cursor_neve

    FETCH NEXT FROM cursor_neve INTO @C_ID

    WHILE @@FETCH_STATUS=0

    BEGIN

    SELECT @CODE=ide jön a kód, ami visszadja az insert utasítást stringbe, vagy a tárol eljárás hívás paraméterekkel
    FROM tábla
    WHERE ID=@C_ID

    EXEC (@CODE)

    FETCH NEXT FROM cursor_neve INTO @C_ID

    END

    CLOSE cursor_neve
    DEALLOCATE cursor_neve

    Vagy, ha kell visszajövő érték is az SP-től, akkor sp_executesql-t lehet paraméterezni szépen, feljebb a link.

    [ Szerkesztve ]

    "Debugging is like being the detective in a crime movie where you're also the murderer."

Új hozzászólás Aktív témák