Patrząc na inne przykłady, wymyśliłem następujące, ale wydaje się, że nie działa tak, jak bym chciał: chcę, aby zaktualizował zmodyfikowane informacje tylko wtedy, gdy QtyToRepair
wartość została zaktualizowana ... ale to nie działa że.
Jeśli skomentuję gdzie, to zmodyfikowane informacje są aktualizowane w każdym przypadku. Jak powiedziałem, inne przykłady skłoniły mnie do optymizmu. Wszelkie wskazówki są mile widziane. Dzięki.
Walter
ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
ON [dbo].[SCHEDULE]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE SCHEDULE SET modified = GETDATE()
, ModifiedUser = SUSER_NAME()
, ModifiedHost = HOST_NAME()
FROM SCHEDULE S
INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
WHERE S.QtyToRepair <> I.QtyToRepair
END
update()
- sprawdza tylko, czy kolumna pojawia się na liście aktualizacji i zawsze jest prawdziwe dla wstawek. Nie sprawdza, czy wartość kolumny uległa zmianie, ponieważ możesz mieć więcej niż jeden wiersz, w którym niektóre wartości uległy zmianie, a inne nie.