after 表示,在表的一行更改后触发执行该触发器的before 表示,在表的一行更改前将要更改的那一时刻触发触发器的。推荐读一读《oracle 8i pl/sql高级程序设计》刚才是我回的贴

解决方案 »

  1.   

    這個例子可以看一下:http://community.csdn.net/Expert/topic/3722/3722967.xml?temp=.8843042
      

  2.   

    楼上说的很清楚了
    所以,after insert触发器不允许设置插入值。因为改行已经插入表中。
      

  3.   

    create or replace trigger tri_ta
      before insert
     on ta
      for each row
    begin
       :new.fa:=:new.fb+:new.fc;
    end;
    例如:
    :new.fb = 1 :new.fc = 2
    此时插入的新值 :new.fa = 3
    如果改为after触发器 
    :new.fa 为你insert时代入的值,而不是:=:new.fb+:new.fc;
    即:如果你插入字段的值需要在这里计算,用before 触发器,如果你是在别的表里记录插入成功记录,或统计插入的条数,用after
      

  4.   

    创建和维护数据库  
    设计触发器
    在设计触发器时,Microsoft® SQL Server™ 2000 提供了两种选项: 执行 INSTEAD OF 触发器代替通常的触发动作。INSTEAD OF 触发器还可在带有一个或多个基表的视图上定义,而在这些视图上这些触发器可扩展视图可支持的更新类型。
    在执行了 INSERT、UPDATE 或 DELETE 语句操作之后执行 AFTER 触发器。指定 AFTER 与指定 FOR 相同,而后者是 SQL Server 早期版本中唯一可使用的选项。AFTER 触发器只能在表上指定。 
    该表比较 AFTER 触发器和 INSTEAD OF 触发器的功能。功能 AFTER 触发器 INSTEAD OF 触发器 
    适用范围 表 表和视图 
    每个表或视图含触发器数量 ()每个触发动作(UPDATE、DELETE 和 INSERT)含多个触发器 每个触发动作(UPDATE、DELETE 和 INSERT)含一个触发器 
    级联引用 不应用任何限制 在作为级联引用完整性约束目标的表上限制应用。 
    执行 晚于: 
    约束处理
    声明引用操作
    inserted 和 deleted 表的创建
    触发动作 
     早于: 
    约束处理 
    代替: 触发动作 
    晚于: inserted 和 deleted 表的创建 
     
    执行顺序 可指定第一个和最后一个执行 不可用 
    在 inserted 和 deleted 表中引用 text、ntext 和 image 列 不允许 允许 
      

  5.   

    上述是在microsoft sql server 2000中的触发器,同oracle类似.