要求,做一触发器,在新增的时候查找出 同品号 最近的表A单据日期和请购部门,更新至 表B 的用途栏位,谢谢

解决方案 »

  1.   

    create trigger my_trig on a for inserted
    as
    begin
      update b set 用途 = i.用途 ...
      from b , (select t.* from a where a.品号 = (select 品号 from inserted)) i 
      where b.品号 = i.品号
    end
      

  2.   

    是不是要考虑不存在,则插入,存在则更新呢?
    create trigger my_trig on a for inserted
    as
    begin
      if not exists(select 1 from b where 品号 = (select 品号 from insered))
         insert into b select top 1 ... from a where a.品号 = (select 品号 from inserted) order by 单据日期 desc
      else
      update b set 用途 = i.用途 ...
      from b , (select top 1 t.* from a where a.品号 = (select 品号 from inserted) order by 单据日期 desc) i  
      where b.品号 = i.品号
    end
      

  3.   

    create tigger test on a
    for insert,update
    begin
    update
      b
    set
      用途=a.日期
    from
      b,
      (select * from inserted i where 日期=(select max(日期) from inserted where 单号=i.单号))a
    where
      a.单号=b.单号
    end
      

  4.   


    create trigger tri1 on a
    for insert
    as
    begin
      update b set 用途=(select top 1 单据日期+请购部门 from a inner join inserted on a.品名=inserted.品名)
    end
    --难道是这样
      

  5.   

    create trigger tri1 on a
    for insert
    as
    begin
      update b set 
         用途=(select top 1 单据日期+请购部门 from a inner join inserted i1 on a.品名=i1.品名 order by a.单据日期 desc)
      from inserted i
      where b.序号=i.序号     --这里假设序号是B主键
    end
    大概差不多这样,有问题肯定是没说清楚引起的