/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
tsql, COLUMN_REALLY_CHANGED()
Fra : Leif Neland


Dato : 05-01-09 22:43

[Jeg har fejlpostet denne i ASP-gruppen, jeg prøver at cancel´e den der..]

Jeg vil gerne have logget ændringer til nogle af felterne i en tabel.

Findes der i tsql en funktion, der viser når en kolonne er blevet
/ændret/ i stedet for blot /opdateret/ til samme værdi den havde i
forvejen, eller er man nødt til at lave

CREATE TRIGGER [t_lok_trigger] ON [dbo].[t_lok]
FOR INSERT, UPDATE
AS
insert into dbo.t_lok_audit
(id,Lagerkode,lagerantal,minlager,changed)
select i.id,i.Lagerkode,i.lagerantal,i.minlager,GETDATE()
from inserted i left join deleted d on i.id=d.id
where i.Lagerkode<>d.Lagerkode
or i.lagerantal<>d.lagerantal
or i.minlager<>d.minlager

Min sql fra asp laver en UPDATE t_lok SET Lagerkode=?, lagerantal=?,
minlager=? WHERE id=? uden at tænke over hvad de hidtidige værdier var,
og jeg vil kun have logget ændringer.

Det er vel forøvrigt ikke muligt at logge den sql-sætning, der faktisk
laver ændringen?

Leif

 
 
Stig Johansen (06-01-2009)
Kommentar
Fra : Stig Johansen


Dato : 06-01-09 05:42

Leif Neland wrote:

> Det er vel forøvrigt ikke muligt at logge den sql-sætning, der faktisk
> laver ændringen?

Det er muligt at logge en sql sætning, men måske ikke brugbar i dit
tilfælde.

Vi brugte det inden for staten, hvor der under de gamle registerforskrifter
var krav om logning af hvem, hvornår og hvad der blev spurgt om i forhold
til personfølsomme data.

Det blev lavet ved at 'montere' et trace, som tracede ned i en tabel i
databasen.

Det er de samme data, som du kan trace via profileren.

Jeg beklager jeg ikke kan være mere specifik, men det er så lang tid siden,
at jeg ikke husker detaljerne, og det var i øvrigt også 7.0.

Men muligheden er der.

Prøv at kigge under sp_trace_* funktionerne.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407865
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste