其实,在SQL SERVER 中,UPDATE是先删除,再插入的,所以,你的修改,肯定要进入INSERT的判断,而UPDATE的判断几乎不会进入。
触发器最好是把插入,更新,删除分开建立,这样的逻辑关系比较清楚。

解决方案 »

  1.   

    顺便问一下,修改触发器怎样才方便点,读出来真接在上面修改,并保存???
    我的是7.0,我现在的做法是先删除,再重建.
    ***************************************************************************
    有没有“SQL查询分析器”,如果有的话,可以先选择触发器所对应的表,编辑触发器,使用“ALTER TRIGGER”
      

  2.   

    顺便问一下,修改触发器怎样才方便点,读出来真接在上面修改,并保存???
    我的是7.0,我现在的做法是先删除,再重建.
    *********************************************************************
    有没有“SQL查询分析器”,使用“ALTER TRIGGER”语句。
      

  3.   

    CREATE TRIGGER trigger_webs_mis_hardware_excernent ON mis_hardware_excernent 
    FOR INSERT, UPDATE
    AS
    IF EXISTS(SELECT * FROM inserted) and ont  EXISTS(SELECT * FROM deleted)
     BEGIN
    INSERT mis_hardware_castoff(status_id,product_id,num,re,oldtab_name,oldtab_id,userid,input_date,use_date) select status_id,product_id,num,'','mis_hardware_excernent',id,userid,input_date,use_date from inserted
    END
    ELSE IF EXISTS(SELECT num FROM deleted)
    BEGIN
    UPDATE mis_hardware_castoff  SET  num=b.num FROM mis_hardware_castoff a,deleted b  WHERE b.id=a.oldtab_id
    END