有四个表,分别是发货单主表,发货单子表,单据主表,单据子表
1、发货单主表
dlid cdlcode
2、发货单子表
dlid cinvcode price
3、单据主表
id cbuscode
4、单据子表
id cinvcode price其中,dlid 和id是随机号码,cdlcode和cbuscode都是发货单号码,cinvcode是货物编码,price是金额,并且表1和表2的dlid相同,表1的cdlcode和表3的cbuscode相同,表3的id和表4的id相同。
现在想写一个触发器,让表4的price在更新的时候,让表2的price自动更新成一样的。但是更新的行必须满足以下条件
1、两个表的cinvcode相同的行
2、根据表4的id查找相同的表3的id对应的cbuscode,再根据表3的cbuscode查找相同的表1的cdlcode对应的dlid,再根据表1的dlid找到表2里相同的dlid并更新当前行的price等于表4的price表比较多,也比较复杂,特出高分求答案,在线等!
1、发货单主表
dlid cdlcode
2、发货单子表
dlid cinvcode price
3、单据主表
id cbuscode
4、单据子表
id cinvcode price其中,dlid 和id是随机号码,cdlcode和cbuscode都是发货单号码,cinvcode是货物编码,price是金额,并且表1和表2的dlid相同,表1的cdlcode和表3的cbuscode相同,表3的id和表4的id相同。
现在想写一个触发器,让表4的price在更新的时候,让表2的price自动更新成一样的。但是更新的行必须满足以下条件
1、两个表的cinvcode相同的行
2、根据表4的id查找相同的表3的id对应的cbuscode,再根据表3的cbuscode查找相同的表1的cdlcode对应的dlid,再根据表1的dlid找到表2里相同的dlid并更新当前行的price等于表4的price表比较多,也比较复杂,特出高分求答案,在线等!
--UPDATE 触发器建立在 表4单据子--变量自己声明SELECT @id,@price=inserted.id
IF UPDATE(price)
begin
update 发货单子表
set price=@price
where dlid in(select t1.dlid from 发货单主表 t1 inner join 单据主表 t3 on t1.cdlcode=t3.cbuscode where t3.id=@id)
end
IF UPDATE(price)
begin
update 发货单子表
set price=@price
where dlid in(select t1.dlid from 发货单主表 t1 inner join 单据主表 t3 on t1.cdlcode=t3.cbuscode where t3.id=@id)
end