日期:2014-05-17  浏览次数:20347 次

关于更新表中某一行的问题????
有一个表A,其中有一列为 当前余额,还有个表B也有一列为 当前余额,当表B插入信息时,B.当前余额=A.当前余额
(指更新当前插入的这一条记录)


  create trigger 当前余额_1 on B
after insert
as
begin
update B set B.当前余额=A.当前余额
from inserted 
inner join A
on B.卡号=A.卡号
end

这样设计触发器它吧整个表的信息都更新了!请问我应该怎样设计呢

------解决方案--------------------
SQL code

create trigger 当前余额_1 on B
after insert
as
begin
update B set B.当前余额=A.当前余额
from inserted i,A
where i.卡号=B.卡号 and B.卡号=A.卡号
end

------解决方案--------------------
inserted 中存放 UPDATE 中插入表的数据,在触发器中可以引用 inserted 获取刚刚修改的是哪一条数据
deleted 中存放记录在 UPDATE 之前的值
------解决方案--------------------
SQL code


create trigger 当前余额_1 on B
after insert
as
begin
update B set B.当前余额=i.当前余额
from inserted i
where i.卡号=B.卡号
end

--直接这样就可以了。