Al observar otros ejemplos, se me ocurrió lo siguiente, pero no parece funcionar como me gustaría: quiero que solo actualice la información modificada si el QtyToRepair
valor se ha actualizado ... pero no funciona ese.
Si comento dónde, la información modificada se actualiza en todos los casos. Como dije, otros ejemplos me llevaron a ser optimista. Cualquier pista apreciada. Gracias.
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()
: solo prueba si la columna aparece en la lista de actualización y siempre es cierta para las inserciones. No comprueba si el valor de la columna ha cambiado, porque es posible que tenga más de una fila, donde algunos valores han cambiado y otros no.