每当主表“Table1”中发生插入、更新或删除时,我想将行插入审计表中 - 无论更改/插入哪一列。我还想在插入、更新或删除时添加 I、U 或 D。对于插入和删除,我正在检查插入和删除的表中是否存在行。进行更新的最佳方式是什么?
我的插入和删除代码是:
CREATE TRIGGER [dbo].[tr_Table1_InsertUpdate_Table1History_Insert]
ON [dbo].[Table1]
FOR INSERT, DELETE, UPDATE
AS
BEGIN
IF EXISTS(SELECT * FROM Inserted)
BEGIN
INSERT INTO Table1History(...., ModificationType)
SELECT ..., 'I'
FROM Inserted
END
IF EXISTS(SELECT * FROM Deleted)
BEGIN
INSERT INTO Table1History(..., ModificationType)
SELECT ..., 'D'
FROM Deleted
END
END
GO
请帮忙!
对于更新,行的原始值将添加到已删除的表中,而行的新值将添加到插入的表中。因此,要识别插入、删除和更新,您需要执行以下操作
- 插入 - 从插入中获取未删除的行
- 删除 - 从已删除的行中获取未插入的行。
- 更新 - 获取插入和删除的行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)