gpt4 book ai didi

sql-server - 插入、更新、删除触发器

转载 作者:行者123 更新时间:2023-12-02 17:42:07 25 4
gpt4 key购买 nike

每当主表“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

请帮忙!

最佳答案

对于更新,行的原始值将添加到已删除的表中,而行的新值将添加到插入的表中。因此,要识别插入、删除和更新,您将执行以下操作

  • 插入 - 获取插入中未删除的行
  • 删除 - 从已删除的行中获取未插入的行。
  • 更新 - 获取插入和删除的行

关于sql-server - 插入、更新、删除触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4111498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com