Avatar billede jeppe_r Nybegynder
26. april 2009 - 23:04 Der er 5 kommentarer

msSQL: Række sidst ændret?

Er der en indbygget funktion i msSQL databasen så man kan få frem hvornår en række sidst er ændret?

- Hvis nej:
Kan man så lave kolonne der automatisk sætter dato ind når en række bliver ændret? Altså sådan så databasen selv klarer det, så det ikke er nødvendigt at sætte det ind med "kode" altså asp.net eller php..

Håber i forstår,
Mvh Jeppe Richardt
Avatar billede wagner Nybegynder
26. april 2009 - 23:17 #1
Jeg tror du bliver nødt til at lave sådan noget selv.

Hvis du i forvejen laver ændringer via stores procedures er det nemt at føje det til her uden at ændre din applikation.

Ellers er en mulighed at lave en update trigger. Denne kaldes automatisk hver gang en række ændres, så du behøver ikke ændre noget af din eksisterende kode.

wagner
Avatar billede CCodam Nybegynder
26. april 2009 - 23:23 #2
Du blir desværre nød til at indsætte en ny kolonne i din table, fx LastUpdate som datetime

Derefter skal du lave en trigger, som så udføre noget, hver gang du laver en update i din table...
Nogen lignende det her:

CREATE TRIGGER KeepUpdated on tablename
FOR UPDATE, INSERT AS
UPDATE dbo.tablename
SET LastUpdate = GetDate()
WHERE id IN (SELECT id FROM inserted)

Du skal ændre id til den kolonne du bruger som primary key :)
Avatar billede zebra_hansen Nybegynder
27. april 2009 - 15:30 #3
I sql 2008 er der en ny funktion:

Change Data Capture (CDC). Dette kan løse ovenstående problematik.

Hvis du ikke er på 2008, så er det som nævnt noget triggerbaseret der er det nemmeste.

/Mikkel
Avatar billede jeppe_r Nybegynder
27. april 2009 - 17:42 #4
I see..
Jeg bruger 2008. Har søgt lidt på det, men synes ikke lige at kunne finde ud af hvordan det virker. Jeg skal bare simpelt vide hvornår der sidst er blevet lavet ændringer i en række..
- Er det noget du har et bud på?
Avatar billede zebra_hansen Nybegynder
27. april 2009 - 17:53 #5
Ved nærmere eftertanke er der en anden funktion i SQL 2008 der nok er nemmere at gå til, og jeg tror den indholder de ting du søger.

Change Tracking. (nej, ikke CDC).

http://msdn.microsoft.com/en-us/library/cc280462.aspx

Synes den er til at gå til. Men spørg hvis du har brug for det:)

/Mikkel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester