Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.296 pregleda

Najnovija ↓

Audit table trigger 05.01.2006. u 00:25 · pre 253 meseca #1
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...
Re: Audit table trigger 05.01.2006. u 10:44 · pre 253 meseca #2
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...???
Potpis
Every hamster has his day.
Re: Audit table trigger 09.01.2006. u 00:11 · pre 253 meseca #3
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"


Re: Audit table trigger 09.01.2006. u 08:06 · pre 253 meseca
izmenjeno 1 put, poslednji put Fedya 09.01.2006. u 11:00
  1. Fedya09.01.2006. u 11:00zapis iz teksta poruke
#4
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. :)
Potpis
Every hamster has his day.
Re: Audit table trigger 11.01.2006. u 23:21 · pre 253 meseca #5
Sorry, tek sad videh...
Super izgleda da valja, javljam čim probam.

Thanks!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme