以下是一个更新触发器,所实现的功能是:当A表中数据被修改时,将修改之前的纪录的 字段1,字段2 插入B表。
 
create trigger trg_a on A
for update
as
begin
    insert into B(字段1,字段2) select 字段1,字段2 from deleted
end
go

解决方案 »

  1.   

    A表发生改变是指 记录数改变还是记录值改变?
    也就是说是针对于update还是 update和insert ?如果是针对update
    create trigger t
    on a
    for update
    as
    insert b (f1,f2) select f1,f2 from a如果是针对update,insert
    则 for update,insert即可.
    或者用after触发器
      

  2.   

    现在要注意的问题就是,要求是A表改变后,实现触发。实现触发后,通过查询的记录,还要再查询另一个表C的“字段3”,最后在把“字段1”“字段2”“字段3”更新到表B中。因此涉及到了怎样读取数据集的问题。大家多费心了!
      

  3.   

    as
    if update(f1) or update(f2)
    insert b (f1,f2) select f1,f2 from a
      

  4.   

    insert b select x.字段1,y.字段3 from inserted x inner join c y on x.id=c.id
      

  5.   

    手误打错.
    insert b select x.字段1,y.字段3 from inserted x inner join c y on x.id=y.id
      

  6.   

    fcuandy大哥,你的代码我没整明白。指点下!
      

  7.   

    那怎么实现A表改动后触发呢?嘿嘿!不好意思!因为,我是需要查询4,5个表中数据,再向B表中更新,所以,您用到的join 怎么样试用到查询那么多表呢?因为之前我是在应用程序中做到的类似查询,可以用RecordSet来实现对记录集的读取,不知道在SQL中用什么样的方法来实现。如果有,请指点!