Create Trigger  kb
on B  for  insert
as
begin
   update  b set iri=inserted.bi*a.rqi_a+a.rqi_b  from inserted inner join a
      on(a.road_name=inserted.road_name)
end

解决方案 »

  1.   

    问一下啊,inserted不是不能用update的吗?
      

  2.   

    可以 inserted 其實也是一個表
      

  3.   

    --------如果你不想那樣做,也可以改成下面的呀--------
    Create Trigger  kb
    on B  for  insert
    as
    begin
       declare  @i  decimal(18,3),@road_name varchar(20)
       select @i=inserted.bi*a.rqi_a+a.rqi_b,@road_name=inserted.road_name  from inserted inner join a
          on(a.road_name=inserted.road_name)   update  b set iri=@i  where  road_name=@road_name
    end
      

  4.   

    这里表rqi为表b,design为表a,为什么会出现错误呢?
    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    ALTER   TRIGGER InsertRqi ON [dbo].[rqi] 
    FOR INSERT
    as
    beginupdate rqi set iri = design.rqi_a + design.rqi_b*inserted.bi 
    from inserted inner join design 
    on(rqi.road_name = design.road_name)update rqi set rqi = 11.5 - 0.75 * iri
    update rqi set 
    rqi_score = 
    case 
    when rqi>=8.5 then '优'
    when rqi>=7 and rqi<8.5 then '良'
    when rqi>=5.5 and rqi<7 then '中'
    when rqi>=4 and rqi<5.5 then '次'
    when rqi<4 then '差'
    end
    endGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO服务器: 消息 107,级别 16,状态 3,过程 InsertRqi,行 8
    列前缀 'rqi' 与查询中所用的表名或别名不匹配。
      

  5.   

    晕,用这样的方法,为什么总是把我里面所有的rqi.iri的值,都变成了一下得到的那个值啊?
    我只要改变添加进来的数据啊
    update rqi set rqi.iri = design.rqi_a + design.rqi_b * inserted.bi
    from inserted inner join design
     on(inserted.road_name=design.road_name)