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