我是触发器的新手,我所知道的是自学,所以请耐心等待我!
我创建了一个捕获数据更改的触发器(我正在使用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
第二行正在做我想要的,即在新表中插入一条新记录,捕获修改列的旧数据和新数据,但是我也插入了没有旧值的行。
任何人都可以解释为什么这样吗?
非常感谢。
我现在发现了这个问题。我的旁边有一个隐藏的触发器。道歉。