我正在尝试创建一个触发器,其中帐户余额会自动从事务表中更新,但我无法更新特定的表。我的触发器会更改每个客户的帐户余额。我想知道如何使用where子句使其成为客户特定的。这就是我所拥有的:
create trigger trig_one
on dbo.transactions
for insert, update, delete
as begin
declare @amount int
select @amount = (select amount from inserted)
update dbo.account set balance = balance + @amount
end
请帮帮我。谢谢!
答案 0 :(得分:1)
您可以像这样构建查询:
update dbo.account
set balance = balance + i.amount
from dbo.account a join
inserted i
on i.accountid = a.accountid ;
(连接键是连接键应该是什么。)
当然,您需要对已删除的内容执行相同的操作。注意:这适用于要插入的多行。这很方便。您的版本会意外失败。