加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 触发插入,更新,删除

发布时间:2020-12-12 07:44:26 所属栏目:MsSql教程 来源:网络整理
导读:我想在主表“Table1”中进行插入,更新或删除时将行插入到审计表中 – 无论哪个列被更改/插入都无关紧要.我还想在插入,更新或删除时添加I,U或D.对于插入和删除,我正在检查inserted和deleted表中是否存在行.什么是接近更新的最佳方式. 我的插入和删除代码是: C
我想在主表“Table1”中进行插入,更新或删除时将行插入到审计表中 – 无论哪个列被更改/插入都无关紧要.我还想在插入,更新或删除时添加I,U或D.对于插入和删除,我正在检查inserted和deleted表中是否存在行.什么是接近更新的最佳方式.

我的插入和删除代码是:

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(...,'D'
  FROM Deleted
 END

END
GO

请帮忙!

解决方法

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

>插入 – 从插入的行中获取未删除的行>删除 – 从已删除的行中获取未插入的行.>更新 – 获取插入和删除的行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读