create tr_table2
on table2
for insert,delete,update
asupdate a
set 总分数=a.总分数+y.分数
from table1 a,(
select 编号,sum(分数) as 分数
from (
select 编号,分数 from inserted
union all
select 编号,-分数 from deleted
) as x
) as y
where a.编号=y.编号go

解决方案 »

  1.   

    谢谢,8992026(8992026) 请问我用下列语句为什么不行呢:
    create trigger  base_ins
           on table2
           for insert,update
           as 
    update table1 set table1.总学分=table1.总学分+table2.学分
    说table2不对。
      

  2.   

    update table1 set table1.总学分=table1.总学分+table2.学分  
    table2改为insert
      

  3.   

    update table1 set 总学分=a.总学分+b.学分
    from table1 a,inserted b
      

  4.   

    你的程序可以这样改
    create trigger  base_ins
           on table2
           for insert,update
           as 
    update table1 set table1.总学分=table1.总学分+a.学分
    from table1 , table2 a(或者 from table1 ,inserted a)
    但是结果好像不是你想要的
      

  5.   

    create trigger  base_ins   on table2
           for insert,delete,update
           as 
    update table1 set 总分数=总分数-deleted.分数 from deleted where deleted.编号=table1.编号
    update table1 set 总分数=总分数+inserted.分数 from inserted where inserted.编号=table1.编号