日期:2014-05-18  浏览次数:20498 次

请教一个SQL SERVER触发器的问题
CREATE   TRIGGER   tu_ecsb   ON   dbo.ecsb  
FOR   UPDATE  
AS
begin  
update   ecndsb   set   ecndsb.bdzmc=inserted.bdzmc,ecndsb.yxbh=inserted.yxbh,ecndsb.sblx=inserted.sblx   from   ecndsb,inserted,deleted     where     ecndsb.bdzmc=deleted.bdzmc   and   ecndsb.yxbh=deleted.yxbh   and   ecndsb.sblx=deleted.sblx
end
当表ECSB更新SBLX字段时,比如说SBLX由“开关”改为“开关柜”,发现所有的开关均已改为开关柜,但是符合条件的所有记录的BDZMC,YXBH都被改成同一样的记录了,看不出哪里出了问题?请教!
BDZMC       YXBH     SBLX
张三           01         开关
李四           02         开关
王五           03         开关
我想改成
BDZMC       YXBH     SBLX
张三           01         开关柜
李四           02         开关柜
王五           03         开关柜
但是却发现成了
BDZMC       YXBH     SBLX
王五           03         开关柜
王五           03         开关柜
王五           03         开关柜

------解决方案--------------------
CREATE TRIGGER tu_ecsb ON dbo.ecsb
FOR UPDATE
AS
begin
update ecndsb
set ecndsb.sblx=inserted.sblx
from ecndsb,inserted,deleted
where ecndsb.bdzmc=deleted.bdzmc
and ecndsb.yxbh=deleted.yxbh
and ecndsb.sblx=deleted.sblx
end
------解决方案--------------------
楼上