小编典典

如何创建触发器以跟踪上次更改的数据

sql

CREATE TABLE Member
(
    memberID - PK
    memberName
    dateRegistered - one time process
);

CREATE TABLE MemberLastChanged
(
   memberID 
   memberName
   dateEntered
);

如果用户有任何机会更改其成员名称,我需要在历史记录表中跟踪当前更改的成员名称。

例如,当前信息是:

会员编号:5534会员姓名
:james

用户将其更改为:

会员编号:5534会员名称
:标记

到现在为止,“成员”将保留当前值:

5534和标记

“ MemberLastChanged”将保持:

5534和詹姆斯


如何使用触发器在T-SQL中实现此目标?


阅读 189

收藏
2021-03-23

共1个答案

小编典典

您创建一个UPDATE触发器-触发器可以访问两个逻辑表,这些逻辑表的结构与其在其上定义的表相同:

  • 插入,这是要放入表中的新数据
  • DELETED,这是表中的旧数据

对使用这些逻辑表MDSN文章。

使用此数据,您可以填充历史记录表。

CREATE TRIGGER trg_Member_MemberUpdate
ON dbo.Member AFTER UPDATE
AS
    INSERT INTO dbo.MemberLastChanged(memberID, memberName)
    SELECT d.MemberID, d.MemberName
    FROM DELETED d
2021-03-23