Office中国论坛/Access中国论坛
标题:
关于触发器的问题!
[打印本页]
作者:
徐阿鹏
时间:
2005-5-20 08:58
标题:
关于触发器的问题!
关于触发器的问题!
单号 采购成本 其他成本 调拨成本 对应单号
cg001 5000 100
db001 5000 100 50 cg001
db002 5000 100 50 db001
想在采购成本、其他成本、调拨成本发生变化时,同步更新对应单号的数据。
写了触发器如下:
ALTER TRIGGER 核算_库存成本表_修改调拨成本
ON dbo.核算_库存成本表
FOR UPDATE
AS
declare @采购成本 money
declare @其他成本 money
declare @调拨成本 money
set @采购成本 =(select 采购成本 from inserted)
set @其他成本=(select 其他成本 from inserted)
set @调拨成本=(select 调拨成本 from inserted)
IF UPDATE (采购成本)or UPDATE(其他成本)or UPDATE(调拨成本)
begin
declare @单号 nvarchar(50)
set @单号=(select 单号 from inserted)
UPDATE dbo.核算_库存成本表
SET 采购成本 = @采购成本, 其他成本 = @其他成本, 调拨成本 = @调拨成本 WHERE (关联单号 = @单号)
end
这个触发器的问题是:只能触发一次,即cg001的成本发生变化时只能更新db001的数据,不能更新db001关联的db002的数据。可是如果开的递归触发的话就报错:超出了32层!
请教高手,这样的触发器该怎么写?谢谢
或者请教表的设计有没有什么其他的思路!
作者:
徐阿鹏
时间:
2005-5-20 19:25
自己解决了
作者:
yodong
时间:
2005-5-21 19:26
请问你是如何解决的?
作者:
徐阿鹏
时间:
2005-5-24 02:17
加了个判断语句
作者:
yodong
时间:
2005-5-25 20:17
是否可以贴代码出来呀,让大家学习一下.
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3