Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Audit table trigger

[es] :: MS SQL :: Audit table trigger

[ Pregleda: 2537 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DraganK

Član broj: 4976
Poruke: 109



+3 Profil

icon Audit table trigger04.01.2006. u 23:25 - pre 222 meseci
Jel' neko ima ideju kako da napravim trigger koji bi u drugu tabelu, po strukturi identičnu prvoj + 2 polja: user koji menja i opis akcije add/upd/del), ubacivao red koji se menja, dodaje ili briše.

Sva rešenja koja sam našao na netu mi se čine malo komplikovana za to što mi treba...
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
*.sbb.co.yu.

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Audit table trigger05.01.2006. u 09:44 - pre 222 meseci
Hajde budi malo precizniji kada postavljas pitanje. Sta ti treba: oces kompletan kod za okidac; ne znas kako da upises nesto u drugu tabelu; ne znas kako da utvrdis koji je tekuci korisnik...???
Every hamster has his day.
 
Odgovor na temu

DraganK

Član broj: 4976
Poruke: 109



+3 Profil

icon Re: Audit table trigger08.01.2006. u 23:11 - pre 222 meseci
Tabela TABELA1 koja se prati i TABELA1_JN koja pamti:


TABELA1 polja:
---------------------
TABID autonimber i pk
POLJE1 char
POLJE2 char
---------------------


TABELA1_JN polja:
---------------------
TABID autonimber
POLJE1 char
POLJE2 char
REC_OPERATION char
REC_USER char
REC_DATE datetime
---------------------

User doda novi red u tabelu, a triger insertuje u TABELA1_JN vrednosti koje je insertovao, vreme, usera a u rec_operation "INSERT"

User brise red u tabeli, a triger insertuje u TABELA1_JN vrednosti koje je obrisao, vreme, usera a u rec_operation "DELETE"

User menja neki red u tabela, a triger insertuje u TABELA1_JN vrednosti koje su bile pre menjanja, vreme, usera a u rec_operation "UPDATE"


 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
*.sbb.co.yu.

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Audit table trigger09.01.2006. u 07:06 - pre 222 meseci
Evo ti ideja pa ti ispravi kako mislis:
Code:

CREATE TRIGGER Logit
    ON [Tabela1]
    FOR INSERT
AS
    DECLARE @counter int
    DECLARE @polje1 char
    DECLARE @polje2 char
    SET @counter = @@ROWCOUNT
    DECLARE kursor CURSOR FOR
        SELECT Polje1, Polje2 FROM Inserted
        
    IF @counter = 1
    BEGIN
        -- Ako je unet samo jedan zapis, ne treba nam kursor
        INSERT INTO [Tabela2] (SELECT Polje1 FROM Inserted, SELECT Polje2 FROM Inserted, "Insert", 'ovde utvrdis usera', DATE)
    END
    BEGIN
        OPEN kursor
        FETCH NEXT FROM kursor INTO @polje1, @polje2
        WHILE @@FETCH_STATUS = 0
            BEGIN
                INSERT INTO [Tabela2] (@polje1, @polje2, "Insert", 'user', DATE)
                FETCH NEXT FROM kursor INTO @polje1, @polje2
            END
        CLOSE kursor
    END

    DEALLOCATE kursor


Ovo ti je samo za insert, slicno definisi i za delete i update...
Nadam se da sam bar malo pomogao, ako nista drugo ovo je bar osnovna ideja, doteraj je po potrebi.
Javi da li si uspeo

Napominjem da sam ovaj kod kucao iz glave direktno u ES-ov editor poruka tako da moguce (cak je vrlo verovantno) da ima gresaka.

[Ovu poruku je menjao Fedya dana 09.01.2006. u 11:00 GMT+1]
Every hamster has his day.
 
Odgovor na temu

DraganK

Član broj: 4976
Poruke: 109



+3 Profil

icon Re: Audit table trigger11.01.2006. u 22:21 - pre 222 meseci
Sorry, tek sad videh...
Super izgleda da valja, javljam čim probam.

Thanks!
 
Odgovor na temu

[es] :: MS SQL :: Audit table trigger

[ Pregleda: 2537 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.