Avatar billede ncp Nybegynder
23. juli 2006 - 00:42 Der er 1 kommentar og
1 løsning

Tjekke dato inden update (trigger)

Hej, har fået stykket følgende trigger sammen som opdatere en offentlig tilgængelig database ved update i "hovedbasen" :

ALTER TRIGGER [eShop_Items_Update] ON [ERP].[dbo].[Lager] FOR UPDATE
AS
BEGIN

UPDATE Web.dbo.Items
SET ItemName = I.Varenavn,
ItemInStock = (I.Beholdning - I.Reserveret),
ItemOrdered = I.Bestilt,
ItemDeliveryDate = I.LeveringsDato
FROM Inserted I
INNER JOIN Deleted D ON (I.ID = D.ID)
WHERE Web.dbo.Items.ItemNo = D.Varenummer

END

Det jeg har brug for er at tjekke om den opdateret Leveringsdato er lig med en bestemt dato (1900-01-01 00:00:00) - Såfremt dette er tilfældet skal min ItemDeliveryDate sættes til NULL - ellers skal ItemDeliveryDate  blot sættes til Leveringsdato.

Hvordan løser jeg dette?
Avatar billede the_bma_man Nybegynder
23. juli 2006 - 19:36 #1
Jeg vil tro, denne kan gøre jobbet.
Har dog ikke testet den...

ALTER TRIGGER [eShop_Items_Update] ON [ERP].[dbo].[Lager] FOR UPDATE
AS
BEGIN

UPDATE Web.dbo.Items
SET ItemName = I.Varenavn,
ItemInStock = (I.Beholdning - I.Reserveret),
ItemOrdered = I.Bestilt,
ItemDeliveryDate = CASE
    WHEN I.LeveringsDato = '1900-01-01 00:00:00' THEN NULL
    WHEN I.LeveringsDato <> '1900-01-01 00:00:00' THEN I.LeveringsDato
END,
FROM Inserted I
INNER JOIN Deleted D ON (I.ID = D.ID)
WHERE Web.dbo.Items.ItemNo = D.Varenummer

END
Avatar billede ncp Nybegynder
24. juli 2006 - 16:09 #2
nice :D
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