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

  • Ispy
    nagyúr

    Sziasztok!

    Nem rég kellett elkezdenem SQL-el foglalkozni, igy ha nagyon bagatel a kérdés ne nevessetek ki!

    A szerver MSSQL2008. Adva van egy tábla és egy tárolt eljárás. A feladat az lenne, hogy a tábla soraiban található mezők adatait használva paraméter ként, soronként futtassuk le a tárolt eljárást. Ez egyébként egy másik táblát tölt fel adatokkal.

    Tudnátok egy egyszerű példát mutatni erre?!

    Előre is köszönöm!

    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.

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