比如 A表增加一条数据之后 怎么自动那B表的某个字段改变值呢?存储过程可以做到吗? 如果A表的增加失败 那么B表也不要改了!

解决方案 »

  1.   

    create trigger tri_B
    on A
    for update
    as
    declare @a char(8),@key char(8)        --用变量@a获取要改变的值,@key获取插入元组的主键值
    select @key=主键,@a=字段 from deleted   --“字段”就是要在B中修改的那个属性
    update B
    set 字段=@a
    where 主键=@key
      

  2.   

    create trigger tri_B
    on A
    for update
    as
    declare @a char(8),@key char(8)        --用变量@a获取要改变的值,@key获取插入元组的主键值
    select @key=主键,@a=字段 from deleted   --“字段”就是要在B中修改的那个属性
    update B
    set 字段=@a
    where 主键=@key
      

  3.   

    在A表上建触发器create trigger tri_update_b
    on A
    for insert
    AS
    begin
      .........
     
    end
      

  4.   

    对上面的语句做了一下修改,如果A表有更新的话也要反应到B表,则for 后面需要增加update及其它代码。
    这里是create trigger资料 http://msdn.microsoft.com/zh-cn/library/ms189799.aspx