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

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