0

我希望下面的触发器仅在客户地址已更改的行中将 NOA 列更新 +1。

我运行查询,只更新了一条记录中的客户地址,但所有 7 条记录中的 NOA 从 0 变为 1。如何?

create trigger track_updates
on CstmrEng.tblCustomer
after update
as
if (UPDATE(CustomerAddress))

update CstmrEng.tblCustomer
set NOA = NOA +1
4

1 回答 1

1

您应该始终inserted在触发器中使用!

像这样的东西:

create trigger track_updates
on CstmrEng.tblCustomer
after update
as
begin            
    if (UPDATE(CustomerAddress))
    begin
        update c
            set NOA = c.NOA + 1
            from CstmrEng.tblCustomer c join
                 inserted i
                 on c.customerId = i.customerId;  -- or whatever the primary key is
    end;
end;
于 2018-07-06T15:06:13.597 回答