我希望下面的触发器仅在客户地址已更改的行中将 NOA 列更新 +1。
我运行查询并仅在一条记录中更新了客户地址,但 NOA 在所有 7 条记录中从 0 变为 1。如何?
create trigger track_updates
on CstmrEng.tblCustomer
after update
as
if (UPDATE(CustomerAddress))
update CstmrEng.tblCustomer
set NOA = NOA +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;