我有一个表A,有三列数据a,b,c,a列是Id,b列是numeric,我想实现这么一个功能,当这个表增加一列时或者修改,删除时,能够把b列的值的计算出来,把计算出来的值,修改表B中d列Id与表A中a列Id相同的行,e列的值,请问这个是触法器吗?没用过触法器,请问哪位大哥给下代码,感谢!!!!!!!!!!!!!!

解决方案 »

  1.   

    --自动计算b列的值 这个具体算法是什么阿?CREATE TRIGGER TRIGGER_a ON a 
    FOR INSERT, UPDATE, DELETE 
    AS
    update B set b.e列 = a.numeric   --a.numeric可换成根据你的算法算出的结果
    from a ,b 
    where a.id = b .id
      

  2.   

    楼上的大哥,我要的是插入修改删除一行数据时,能够把当前a列Id所以相同的行b列的数据给统计出来,合计,然后把这个合计修改B表中d列的值等于当前行的Id的值的e列的值啊
      

  3.   

    --更新所有关联的B表的数据CREATE TRIGGER TRIGGER_a ON a 
    FOR INSERT, UPDATE, DELETE 
    AS
    update B set b.e列 = sum(a.numeric)   --a.numeric可换成根据你的算法算出的结果
    from a ,b 
    where a.id = b .id
    group by a.id--只更新当前的关联数据我不会写
      

  4.   

    我有一个表A,有三列数据a,b,c,a列是Id,b列是numeric,我想实现这么一个功能,当这个表增加一行时或者修改,删除时,能够把与这行Id值相同的行的b列的值给合计出来,把计算出来的值,修改表B中d列Id与表A中a列Id相同的行,e列的值,请问这个是触法器吗?没用过触法器,请问哪位大哥给下代码,感谢!!!!!!!!!!!!!!

    表A
    a   b      c 
    12  12.25 
    15   14.5   
    12  1.5    新插入一行的数据
    能够把a列等于12的行的列数据合计出来存放在表B
    d   e
    12  14.2
    13  14
    表B的d列等于12的行,修改e列的数据,这个触发器该怎么写,没用过触发器啊,请哪么仁兄,给点代码
      

  5.   

    CREATE TRIGGER tr_UptDelA ON dbo.A
    FOR UPDATE, DELETE
    AS
    declare @bColA int
    declare @Total floatselect @bColA=a, @Total=sum(b)
    from A
    where a in (select a from deleted)
    group by aprint @bColA
    print @Totalif Exists(select d from B where d=@bColA)
    update B set
    e=@Total
    where d=@bColA
    else
    insert into B (
    d
    ,e
    ) values (
    @bColA
    ,@Total
    )CREATE TRIGGER tr_InsA ON dbo.A
    FOR INSERT
    AS
    declare @bColA int
    declare @Total floatselect @bColA=a, @Total=sum(b)
    from A
    where a in (select a from inserted)
    group by aprint @bColA
    print @Totalif Exists(select d from B where d=@bColA)
    update B set
    e=@Total
    where d=@bColA
    else
    insert into B (
    d
    ,e
    ) values (
    @bColA
    ,@Total
    )