写三个触发器
如下所示:(其中xx为表中唯一性索引)
CREATE TRIGGER tri_ins_abc
ON abc 
FOR INSERT
AS
insert into a
select from inserted
insert into b
select from inserted
/**/
CREATE TRIGGER tri_del_abc
ON abc 
FOR DELETE  
AS
delete a
where (xx=(select xx deleted))
delete b
where (xx=(select xx deleted))
/**/
CREATE TRIGGER tri_upd_abc
ON abc 
FOR UPDATE  
AS
update a
where xx=(select xx from inserted)
update b
where xx=(select xx from inserted)

解决方案 »

  1.   

    我也来一个CREATE TRIGGER Delete_Trigger ON abc 
    FOR DELETE 
    ASif @@rowcount =0 
    returndelete [abc]
    FROM [abc] dest1,deleted d1
    WHERE dest1.idx = d1.idx
    if @@error != 0
    rollbackreturn
      

  2.   

    触发器!有人喜欢有人恨!
    不过:skyline(天涯客) 如果你喜欢就不要写这样的语法!你到底如何update阿!
    我想还是这样
    CREATE TRIGGER tri_upd_abc
    ON abc 
    FOR UPDATE  
    AS
    begin
    update a
    set a.xx=inserted.xx
    where a.primay key=deleted.primary key
    update b
    set b.xx=inserted.xx
    where b.primay key=deleted.primary key
    end
    生活变得越来越没有意思了!
      

  3.   

    比如一个学生管理的系统
    /*建立触发器*/
    DROP TRIGGER STUD_TRG_JY982_6;CREATE OR REPLACE TRIGGER STUD_TRG_JY982_6
    BEFORE INSERT OR UPDATE OR DELETE ON STUD_JY982_6
    FOR EACH ROW
    BEGIN
    /* 插入 */
    IF INSERTING THEN
    INSERT INTO ST_JY982_6 VALUES(:NEW.XH,:NEW.XM,(SYSDATE-:NEW.CSNY)/365);
    END IF;
    /* 修改 */
    IF UPDATING THEN
    DELETE  FROM ST_JY982_6 WHERE XH=:OLD.XH;
    INSERT INTO ST_JY982_6
    VALUES(:NEW.XH,:NEW.XM,(SYSDATE-:NEW.CSNY)/365);
    END IF;
    /* 删除 */
    IF DELETING THEN
    DELETE FROM ST_JY982_6 WHERE XH=:OLD.XH;
    END IF;
    END;
    //*STUD_???中输入、修改、删除数据时,查看ST_???表中的变化*/
    /*插入*/
    INSERT INTO SYSTEM.STUD_JY982_6 VALUES('9605104','张鼎辉',SYSDATE-365*21,'广西南宁','D05',21);
    /*修改*/
    UPDATE STUD_JY982_6 SET XH='9800000'
    WHERE XM='胡明天';
    /*删除*/
    DELETE FROM STUD_JY982_6
    WHERE XM='唐明海';
    /*查看ST_???表中的变化*/
    SELECT * FROM ST_JY982_6;