• 5 odgovora
  • 1.998 pregleda
History tablica za promjene preko triggera 14.06.2011. u 15:14 · pre 186 meseci #1
Imam tablicu od nekih 150 kolona (ne pitajte zašto, obrazac je nekakav i tako mora da bude). Administrator ima mogućnost mjenjati podatke iz spomenute tablice. Ja bih napravio trigger koji bi hvatao DELETE i UPDATE nad tom tablicom i stare vrijednosti bi spremao u neku history tablicu (to bi napravio sa deleted i inserted naredbama).

Sada trebam vašu pomoć.

Update i brisanje podataka su rijetki pa ne bi kreirao istu tablicu kao i originalnu (sa 150 kolona). Nad history podacima neće biti pretraživanja!

Zanima me kako bi vi to najbolje riješili? Kako bi izgledala ta history tablica, a da bude jednostavna?

radi se o SQL 2005...
Re: History tablica za promjene preko triggera 14.06.2011. u 15:51 · pre 186 meseci #2
Najbolja bi bila varijanta da kroz triger dobijes informaciju koje polje je apdejtovano
i da staru vrednost upises u tabelu sa poljima (ime_polja (varchar) , vrednost(varchar) , datum_izmene(datetime) , user(varchar) , akcija (brisanje ili update) ).
Ako se pak radi o deletu onda sva polja obrisanog rekorda upises u tu tabelu sa flagom akcija = 'brisanje' .

Potpis
Viva lollapalooza
Re: History tablica za promjene preko triggera 15.06.2011. u 09:49 · pre 186 meseci #3
kao dopuna, osim polja koje je promenjeno, bitno je evidentirati i koji red je promenjen (ili zapisati primarni kljuc reda cije se kolone menjaju)
Re: History tablica za promjene preko triggera 15.06.2011. u 16:06 · pre 186 meseci #4
MOzda ovo pomogne: http://www.nigelrivett.net/SQL...s/GenerateTriggerForAudit.html

Imas nekoliko varijanti trigera koji prati promene na nivou kolone, pa prouci i izaberi ako ti odgovara. Sto je najlepse, trigeri su genericki i rade sa bilo kojom tabelom, bez velikog podesavanja. Tek toliko da ti ustedi vreme na proveri koja se kolona od tvojih 150 kolona promenila.

Re: History tablica za promjene preko triggera 15.06.2011. u 16:33 · pre 186 meseci #5
Plus, ako ide pesackom logikom IF UPDATED(kolona) komanda nece uvek raditi 100% tacno. Update je mozda uradjen ali to ne znaci da je polje promenilo vrednost .
Potpis
Viva lollapalooza
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme