当输入UPDATE语句时,触发器被激活,以便最后保留原始行和更新行,并且如果用户想要,则可以显示。
orignal行(编辑标记为Y)值是正确的,但更新的行(编辑标记为NULL)应该与原始行CreationDate
的{{1}}相同,而不是ModificationDate
}。我该如何解决?
CreationDate
执行此T-SQL时调用触发器:
CREATE TRIGGER CloneAfterUpdate
ON ProcessList
AFTER UPDATE
AS
IF (UPDATE(Amount) OR UPDATE(Name))
BEGIN
INSERT INTO ProcessListHist (
ID,
Name,
Amount,
CreationDate,
Edited,
ModificationDate)
SELECT
ID, Name, Amount, CreationDate, 'Y', GETDATE()
FROM deleted
END
答案 0 :(得分:0)
我刚刚开始使用sql,但我认为这可能会这样做:
UPDATE ProcessList
SET Amount = 23000
WHERE Name = 'Tammy'
SELECT ph.ID,
ph.Name,
ph.Amount,
ph.CreationDate,
ph.Edited,
pl.ModificationDate,
FROM ProcessList pl
left join ProcessListHist ph
on pl.id=ph.id and pl.Name= ph.name and pl.CreationDate =ph.CreationDate
ORDER BY ID ASC, CreationDate ASC
这是未经测试的,只是为了给你一个想法。如果这不正确,我道歉。