sql update查询,为同一记录创建历史记录

时间:2013-03-20 05:26:22

标签: sql-server-2008

我有一个enquiry details表,用户需要更新其特定查询的状态。如果我使用update语句,它将覆盖以前的状态更新。

我需要的是

sno     confname         region       enquiry   status update    date of update
 1     Vision 2020   Madhya Pradesh    test    have to follow     16/03/2013
                                                next week     
 1     Vision 2020    Madhya Pradesh   test    Confirmed the
                                                product. Product  20/03/2013
                                                to be deliver.     

但我现在正在接受

sno     confname         region       enquiry   status update    date of update
 1     Vision 2020    Madhya Pradesh   test    Confirmed the
                                                product. Product  20/03/2013
                                                to be deliver.    

我需要了解特定调查的历史。

感谢您的投入和帮助。

2 个答案:

答案 0 :(得分:0)

这就是你如何实现自己想要的目标。使用TRIGGER

CREATE TRIGGER trigg_TriggerName
ON yourFIRSTTableName
AFTER UPDATE
AS

INSERT INTO yourSECONDTableName
    SELECT * FROM DELETED

只需像这样创建一个trigger。因此,无论何时在父表上执行update,您的第二个表将为inserted,其中包含来自父表的旧记录。

此外,如果您想了解DELETED的更多信息,请详细了解MAGIC TABLES

答案 1 :(得分:0)

建议你有一个单独的历史表,而不是使用TRIGGER,每次进行更新时,使用[update ... output delete。* into history table]