我是触发器的新手,我所知道的是自学的,所以请耐心等待并保持简单!
我创建了一个触发器来捕获数据更改(我使用的是 SQL Server 2008 R2 Express),但我不明白为什么要在新表中插入两行。
这是我到目前为止所拥有的:
CREATE TRIGGER trg_Audit
ON EmployeeTable
FOR UPDATE
AS
INSERT INTO NewTable (DBUser, executiontime, oldvalue, newvalue, employeeid, type, entrydate, ID)
SELECT
SUSER_SNAME(), GETDATE(),
deleted.value, inserted.value, inserted.employeeid, inserted.type,
inserted.entrydate, inserted.ID
FROM
inserted
INNER JOIN
deleted ON inserted.ID = deleted.ID
第二行正在做我想做的事,即将一条新记录插入到新表中,捕获修改列的旧数据和新数据,但是我也插入了没有旧值的行。
谁能解释一下这是为什么?
非常感谢。
我现在发现了这个问题。我的旁边有一个隐藏的触发器。道歉。