Observando outros exemplos, eu vim com o seguinte, mas não parece funcionar como eu gostaria: Eu quero que ele atualize apenas as informações modificadas se o QtyToRepair
valor tiver sido atualizado ... mas não funciona aquele.
Se eu comentar o onde, as informações modificadas serão atualizadas em todos os casos. Como disse outros exemplos me levaram a ser otimista. Quaisquer pistas são apreciadas. Obrigado.
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()
- ele apenas testa se a coluna aparece na lista de atualização e é sempre verdadeiro para inserções. Não verifica se o valor da coluna foi alterado, porque você pode ter mais de uma linha, onde alguns valores foram alterados e outros não.