Hirdetés

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

  • Louro
    őstag

    Ezt nem ertem :F
    Megmutatnad egy peldaban nekem?

    feladat tabla:
    ==========
    ID
    Megnevezes
    Leiras
    Hatarido
    -------
    + ID_elozo ????

    Ket kulonbozo sort, rekordot kell egy rekordba tenni?

    Utana pedig feltetelkent kell kezelni sql utasitasban?

    Én úgynevezett triggerben gondolkodnék elsőre.

    bambano iránya tényleg jó, hidd el. Legyen egy új oszlopod, aminek a neve Esemény. Az egyszerűség kedvéért számokkal érdemes jelölni, de ha kicsi a tábla és van dögivel hely és kakaó, akkor szövegesen is beírhatod.

    Szóval ez úgy nézne ki, hogy tegyük fel az első eseményed: létrehozás. Azaz itt létrehozod a feladatot (ID). Második esemény lehet mondjuk a feladatkiosztás. Itt legyen az a feltétel, hogy ha a Hatarido kitöltésre kerül.

    CREATE TRIGGER séma.triggerNeve
    ON séma.táblaNeve
    AFTER UPDATE AS
    BEGIN
    SET NOCOUNT ON;
    IF UPDATE (Hatarido)
    BEGIN
    UPDATE séma.táblaNeve
    SET Esemeny = 'Feladatkiosztás'
    FROM séma.táblaNeve S
    INNER JOIN Inserted I
    ON S.ID = I.ID
    END
    END

    Másik gondolatom a feladatot sokadszor olvasva, hogy azt akarod, hogy van a táblád és ha másik táblában rögzítenek Eseményt, akkor az a tábládon hajtson végre valamit. Igazából itt is triggert látom a legjobbnak. Csak akkor annyiban módosul a fenti script, hogy a 2. sorban, a tábla neve a másik táblára mutasson és a belső update-nél is az ON-nál érdemes figyelni a kötésre. Az Inserted-et úgy képzeld el, mint egy átmeneti tábla, amiben a 2. sorban hivatkozott tábla adott rekordja van (, amire elsül a trigger). Ilyenkor a legfrissebb adatokat tartalmazza. Ennek párja a "deleted", ami a frissítés előtti állapotot tárolja. Akadnak helyzetek, amikor vagy ez vagy az kell. De többnyire inkább a friss kell. Ha nem jegyzed meg, akkor általánosságban inkább használd az Inserted átmeneti táblát.

    Szóval úgy érzem triggereket fogsz gyártani :) (Max jönnek az okosabbak és mutatnak jobb megoldást. Munka után, agymosottan ezt tudtam segíteni.)

    Extra javaslat: Ha 4-5 lépés van a folyamatban, akkor érdemes eltárolni az időpontot és a felhasználót. Ha több, akkor lehet egy táblát csinálnék, hogy tároljuk el a lépést, időpontot és a nevet. Később jól jöhet.

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