日期:2014-05-18  浏览次数:20349 次

SQL表的类似触发器问题
表A
列:a(关键字),b,c,d,e,f

表B
列:a(关键字),c,d,f

要求在表A修改、删除、插入的时候,表B跟着变化修改删除或插入

说白了,就是一模一样,但是表B操作的时候不影响表A

求 SQL 2000 个人版 的代码

------解决方案--------------------
CREATE TRIGGER TRI_A_B_IDU ON A
FOR INSERT,DELETE,UPDATE
AS
BEGIN
DELETE B FROM B WHERE EXISTS(SELECT 1 FROM DELETED D WHERE D.A=B.A)
UPDATE B SET C=I.C,D=I.D,F=I.F FROM B,INSERTED I WHERE B.A=I.A
INSERT B SELECT A,C,D,F 
FROM INSERTED I WHERE NOT EXISTS(SELECT 1 FROM B WHERE I.A=B.A)
END