我想在一张表插入记录时,修改另一张表的一个字段,触发器应该怎么写呢  如:我在t_music中插入一条记录,t_music中有一个字段(m_classid)来记录它所属的类别,,当插入这条记录时,我想在t_musicClass中修改id为t_music表中对应m_classid的记录的m_counts值 

解决方案 »

  1.   

    create trigger tr_t_music_I on t_music
    for insert
    as
    --如果是多类别或单类别单条插入的
    update a set m_counts=m_counts+1
    from t_musicClass a, inserted b
    where a.m_classid=b.m_classid
    go--如果是多类别或单类)批量插入
    update a 
    set m_counts=m_counts+b.cnt
    from t_musicClass a,(select m_classid,count(*) as cnt from t_musicClass a,inserted b where a.m_classid=b.m_classid group by m_classid) b
    where a.m_classid=b.m_classid
    go
      

  2.   

    --trycreate trigger triggerName
    on t_music
    for insert as 
    begin
       update t_musicClass set m_counts = m_counts + 1
       from inserted
       where t_musicClass.m_classid = inserted.m_classid
    end
      

  3.   

    那我删除一条记录在t_music中时 把t_musicclass中的m_couts-1:
    create  trigger  reduceCounts  on  t_sung
    for  delete  
    as  
     
    update  a  set  m_counts=m_counts-1  
    from  t_musicClass  a,  inserted  b  
    where  a.id=b.m_classid
    是这样吗,可是不行啊
      

  4.   

    我弄好了,谢谢各位了;
    在t_sung中添加一条记录时,根据它的类别,使t_musicClass中对应的记录m_counts加1create  trigger  addCounts  on  t_sung
    for  insert  
    as 
    update  a  set  m_counts=m_counts+1  
    from  t_musicClass  a,  inserted  b  
    where  a.id=b.m_classid在t_sung中删除一条记录时,根据它的类别,使t_musicClass中对应的记录m_counts减1
    CREATE  trigger  reduceCounts  on  t_sung
    for  delete  
    as  
     
    update  a  set  m_counts=m_counts-1  
    from  t_musicClass  a,  deleted  b  
    where  a.id=b.m_classid
     
    谢谢师兄们了