【发布时间】:2020-10-04 18:23:48
【问题描述】:
我在 sql server 中有一个表,其中有很多列,每次都可以更新。现在我想要一个插入到历史表中的触发器,我已经创建了在主表中更新的值。历史表是这样的:VarName(存储主表中更新的列名,ID(主表中行的id),OldValue(更新的旧值,NewValue(新的)值),日期(更新日期)。我使用此代码,但我希望触发器自动检测已更改的列并将其名称存储在 VarName 列中。请记住,在主表的一行中可以更新多个字段因此,如果更新了 3 个字段,则历史表将添加 3 行,其中包含主表中各自的列名及其旧值和新值的发生更新。 创建触发器 [dbo].UpdateOnMainTable ON [dbo].[MainTable] 更新后 作为 开始
INSERT [dbo].[Historical] (VarName, ID, OldValue, NewValue, Date)
SELECT ===> the code here
FROM inserted i
INNER JOIN deleted d
ON i.ID = d.ID
结束 走 正如我解释的那样,我想要一个填充我的历史表的代码。
【问题讨论】:
标签: sql sql-server-2012 triggers