求个简单触发器
我在MSSQL里写一个触发器[SumMoney],针对Update触发的,表   abc   字段如下:   
 m1      m2      m3      sumMoney 
 1         2         3               6 
 5         4         3               12   
 我想要的效果是当用户更改m1或m2或m3的值时,Update触发器就进行统计,将m1+m2+m3的和写到对应的列sumMoney中。下面是我写的: 
 CREATE   TRIGGER   SumMoney   ON   dbo.abc 
 FOR   UPDATE 
 AS 
 update   [dbo].[abc]      set   sumMoney=m1+m2+m3   
 以上的代码应该是不管改了哪行,触发器都会将所有行都求和一遍,请问我如何只对更改的行求和呢?
------解决方案--------------------这个表你需要加一个主键(如id)   
 update [dbo].[abc]  set sumMoney=m1+m2+m3 where id in (select id from deteled)   
 你要加个条件限制你是计算 更新过的纪录, 
 更新过的纪录存在于deteled表中 
------解决方案--------------------/*你表应该要有一个主键如id或者其它*/ 
 ---创建测试环境 
 Create Table 测试表(id int,m1 int,m2 int,m3 int,sumMoney int) 
   Insert 测试表 Select 1,1,   2,   3,     6 
       Union All Select 2,5,   4,   3,     12  
 Select * From 测试表   
 ---创建触发器 
 Create Trigger Tri_Sum On 测试表 
 For Update 
 As  
     If Update(m1) Or Update(m2) Or Update(m3) 
     Begin 
        Update T Set T.SumMoney=T.m1+T.m2+T.m3  
        From 测试表 T  
        Inner Join Inserted i On T.id=i.id 
        Inner Join Deleted d On T.id=d.id 
     End 
 GO    
 ---更新表 
 Update 测试表 Set m1=2 Where id=1 
 Update 测试表 Set m3=1 Where id=2 
 ---查看更新后的数据 
 Select * From 测试表   
 --结果 
 /* 
 id          m1          m2          m3          sumMoney     
 ----------- ----------- ----------- ----------- -----------  
 1           2           2           3           7 
 2           5           4           1           10   
 (所影响的行数为 2 行) 
 */