Avatar billede _just4fun_ Nybegynder
15. juli 2003 - 09:38 Der er 3 kommentarer og
1 løsning

Trigger skal kun trigge på nogle felter under opdatering

Hej Experter

Jeg har en tabel:

CREATE TABLE [dbo].[testtable] (
    [myId] [int] NOT NULL ,
    [lastUpdated] [datetime] NOT NULL ,
    [data1] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [data2] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]

som ligger inde med noget data:
insert into testtable (myId, data1, data2) values (1, 'xxx', 'yyy')

Hvordan laver jeg en trigger, så hvis data1 af en eller anden grund ændrer sig, så skal [lastUpdated] opdateres med det nuværende tidspunkt. Så følgende statement skal resultere i at [lastUpdated] ændres:

UPDATE testtable SET data1 = 'zzz' where myId = 1

men fælgende statement skal ikke resultere i en opdatering af [lastUpdated]:

UPDATE testtable SET data2 = 'zzz' where myId = 1

På forhånd tak
Avatar billede dfens Nybegynder
15. juli 2003 - 09:42 #1
IF Update (data1) BEGIN
  UPDATE testtable SET lastUpdated = GETDATE()
END
Avatar billede _just4fun_ Nybegynder
15. juli 2003 - 10:02 #2
THNX

btw, hvad skal jeg søge etfer hvis jeg skal finde noget om denne Update() i transact-sql online books?
Avatar billede dfens Nybegynder
15. juli 2003 - 10:03 #3
IF UPDATE
Avatar billede _just4fun_ Nybegynder
15. juli 2003 - 10:31 #4
der var den! 1000 tak
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