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

前端之家收集整理的这篇文章主要介绍了sql-server – 触发插入,更新,删除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在主表“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

请帮忙!

解决方法

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

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

猜你在找的MsSQL相关文章