通过查看其他示例,我得出了以下结论,但它似乎不像我想要的那样工作:如果已更新QtyToRepair
值,我希望它只更新修改的信息……但它没有这样做。
如果我注释掉 where 子句,那么修改的信息将在所有情况下都会更新。正如我所说,其他示例让我感到乐观。任何线索都会很感激。谢谢。
沃尔特
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()
的警告 - 它只检查列是否出现在更新列表中,并且对于插入操作始终为真。它不会检查列值是否已更改,因为你可能有多行数据,其中一些值已更改而另一些未更改。 - Nikola Markovinović