如何在更新前存储记录?

时间:2015-10-27 16:18:19

标签: sql-server triggers

我使用的是SQL Server数据库。我有两个表InspectionsHistory_Inspections

在更新Inspections表中的记录之前,我需要将其存储到History_Inspections表中。

我想使用SQL Server更新触发器,但只有在更新记录后才会触发。

任何想法如何在更新前将Inspections表中的记录存储在History_Inspections表中?

1 个答案:

答案 0 :(得分:2)

当SQL Server中的AFTER UPDATE触发器触发时,触发器中的Inserted伪表包含新值(在UPDATE之后)和Deleted伪表包含旧值之前 UPDATE)。

因此,在您的情况下,只需从Deleted表中读出行并将其存储到History_Inspections表中。

CREATE TRIGGER trg_AfterUpdateInspections
ON dbo.Inspections
AFTER UPDATE
AS 
   INSERT INTO dbo.History_Inspections(list of columns)
       SELECT (list of columns)
       FROM Deleted