Gå til innhold

Anbefalte innlegg

Heisan

Jeg lurer på noe så enkelt som å få MSSQL2005 til å automatisk sette dagens dato på et feil i en ny record. Ser det er noe som heter Computed Column Specification, men setter jeg TODAY der så får jeg bare feilmeldinger. Det samme får jeg om jeg prøver det samme i Default Value. Noen tips

Lenke til kommentar
Videoannonse
Annonse

Bruk TIMESTAMP datatypen, f.eks.:

CREATE TABLE feilmelding (
feilmelding_id INT NOT NULL,
feilmelding_navn NVARCHAR(30) NOT NULL,
feilmelding_beskrivelse NVARCHAR(200) NOT NULL,
feilmelding_tid TIMESTAMP NOT NULL,
CONSTRAINT feilmelding_pk PRIMARY KEY (feilmelding_id)
);

 

Når du da gjør en insert i denne tabellen så vil klokkeslettet (og dato) bli lagret.

F.eks.:

INSERT INTO feilmelding (feilmelding_id, feilmelding_navn, feilmelding_beskrivelse)
VALUES (1, 'Error 1234', 'Ukjent Windows feil; hiv pcen din og kjøp deg en Mac.');

 

Timestamp Syntax (MSSQL Server 2005)

 

Må påpeke at hvis det blir gjort en update av f.eks. 'feilmelding_navn' så vil Timestamp også bli oppdatert.

Lenke til kommentar

Ahh.. ser det nå.. beklager feilen.

 

Men hvis du bytter ut 'feilmelding_tid TIMESTAMP NOT NULL,'

med 'feilmelding_tid DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP'

så vil det funke.

 

Ser også at en Update vil ikke endre tiden inni 'feilmelding_tid'.

Oppdatering av tiden kan gjøres slik:

UPDATE feilmelding
SET feilmelding_tid = GETDATE()
WHERE feilmelding_id = 1;

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...