create   trigger   state_update   on   classstate 
for   insert 
as   
begin 
update   a
set   state1   =   i.state 
from checkstate a 
left join inserted i
 on a.querydate   =   i.querydate   and   a.classroom   =   i.classroom 
end 

解决方案 »

  1.   

    不是重命名的问题是你那样在from 后没有表名呀,SQL无法解析呀
      

  2.   

    create   trigger   state_update   on   classstate 
    for   insert 
    as   
    begin 
    update   checkstate 
    set   state1   =   inserted .state 
    from checkstate  
    left join inserted
     on checkstate .querydate   =   inserted .querydate   and   checkstate .classroom   =   inserted .classroom 
    end 
      

  3.   

    噢   ,是用on不是where啊create   trigger   state_update   on   classstate 
    for   insert 
    as   
    begin 
    update   checkstate 
    set   state1   =   inserted .state 
    from checkstate  ,inserted
    where checkstate .querydate   =   inserted .querydate   and   checkstate .classroom   =   inserted .classroom 
    end 也可以where ,几种不同的写法
      

  4.   


    如果我在刚刚那个程序里想前面加个关于inserted的判断要怎么做呢?
    这样又是不行的,正如你所说,无法解析create   trigger   state_update   on   classstate 
    for   insert 
    as   
    if (inserted.class = 1)  
    begin
    update   checkstate 
    set   state1   =   inserted .state 
    from checkstate  ,inserted
    where checkstate .querydate   =   inserted .querydate   and   checkstate .classroom   =   inserted .classroom 
    end
      

  5.   

    create   trigger   state_update   on   classstate 
    for   insert 
    as   
    if (select class from inserted) = 1 
    begin
    update   checkstate 
    set   state1   =   inserted .state 
    from checkstate,inserted
    where checkstate .querydate   =   inserted .querydate   and   checkstate .classroom   =   inserted .classroom 
    end
    这样似乎就可以了,谢谢指教
      

  6.   

    inserted和deleted可以在2005的OUTPUT子句使用
    例如,
    declare @a table(before int,after int)
    update tablea
    set id=id+1
    output deleted.id,
           inserted.id
    into @a(before,after )
    select * from @a 
      

  7.   

    --改一下更新
    update   c
    set   state1   =   inserted.state 
    from inserted i,checkstate c
    where   c.querydate   =   i.querydate   and   c.classroom   =   i.classroom