写三个触发器
如下所示:(其中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)
如下所示:(其中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)
FOR DELETE
ASif @@rowcount =0
returndelete [abc]
FROM [abc] dest1,deleted d1
WHERE dest1.idx = d1.idx
if @@error != 0
rollbackreturn
不过: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
生活变得越来越没有意思了!
/*建立触发器*/
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;