2
我在表A上创建了插入触发器,在表A中插入记录时,只要在表A上发生插入操作就行了。这很好,但是如果我在表A上使用更新触发器,它会在表中插入更新记录B,但不会删除表B中的旧记录。如何获得期望的结果?更新触发器如何删除旧记录
ALTER TRIGGER trigger1 on tableA
FOR UPDATE
AS
BEGIN
IF NOT EXISTS (SELECT C.column1 FROM tableB C INNER JOIN INSERTED I ON C.column1 = I.column1 WHERE C.column1 = I.column1 AND C.column2 = I.column2)
INSERT INTO tableB (column1 , column2)
SELECT column1 , column2
FROM INSERTED I
WHERE RecordTypeId IS NOT NULL
GROUP BY column1 , column2
ORDER BY column1 , column2
END
为什么要删除早期版本?档案表通常会保留记录的所有版本。 –
它不是像存档的表,但另一个表中包含表A的某些列的不同记录 – Sushil
那么,你会让触发器删除旧行?这里有什么问题? –