做两个触发器,一个insert ,一个 update
CREATE TRIGGER [TRIGGER NAME] ON [hhxt].[DM_GG] 
FOR INSERT
AS
    update table1 set g=b-d where id=@@IDENTITY
CREATE TRIGGER [TRIGGER NAME] ON [hhxt].[DM_GG] 
FOR UPDATE
AS
    declare @v_id int
    select @v_id=id from inserted    update table1 set g=b-d where id=@v_id另外也可以在一个触发器里通过判断触发类型来处理

解决方案 »

  1.   

    一个就可以搞定假设关键字为A
    Create Trigger [Update_G] On table1
    FOR INSERT,UPDATE
    AS
    Update T1 Set G=T2.B-T2.D from table1 T1 Inner Join Inserted T2 On T1.A=T2.A
    GO
      

  2.   

    如果你不知道主键,只好如此:Create Trigger [Update_G] On table1
    FOR INSERT,UPDATE
    AS
      Update T1 Set G=T2.B-T2.D from table1 T1 
        Inner Join Inserted T2 On (T1.A=T2.A or (T1.A is null and T2.A is null))
           and (T1.C=T2.C or (T1.C is null and T2.C is null))
           and (T1.E=T2.E or (T1.E is null and T2.E is null))
           and (T1.F=T2.F or (T1.F is null and T2.F is null))
    GO