Переглядаючи інші приклади, я придумав наступне, але воно, здається, не працює так, як хотілося б: я хочу оновити змінену інформацію лише у тому випадку, коли QtyToRepair
значення було оновлено ... але це не робить що.
Якщо я зауважую, де тоді модифікована інформація оновлюється у кожному випадку. Як я вже говорив, інші приклади привели мене до оптимізму. Будь-які підказки оцінили. Дякую.
Вальтер
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()
- тестує лише, якщо стовпець з’являється у списку оновлень, і завжди відповідає дійсності для вставок. Він не перевіряє, чи змінилося значення стовпця, оскільки у вас може бути більше одного рядка, де деякі значення змінилися, а деякі - ні.