查找状态更改

时间:2016-04-26 15:22:52

标签: sql compare

我有一个主表,比如说mast_tbl,这个表上的每个更改都作为hst_mast_tbl的不同条目。两个表中都有col讨论状态变化。现在,如果我想跟踪过去10天内只有状态发生变化的记录数量,我该如何以最简单的方式实现?

要使用滞后函数,有时可能会有更多列在主表中更新,因此我的历史记录表中有多于1条记录。那么我怎样才能实现同样的目标。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用触发器?如果您使用SQL Server this可能会对您有所帮助。 您可以在桌面上编辑某个列时使用FOR UPDATE来使用触发器

CREATE TRIGGER [dbo].[trg_update] ON [dbo].[tbl_trans]
WITH EXECUTE AS CALLER
FOR UPDATE
AS
BEGIN
    DECLARE @transaction VARCHAR(15)
    DECLARE @action VARCHAR(10)
    DECLARE @ref_id INT
    DECLARE @trail_date DATETIME

    SELECT
        @transaction = '<your table here>',
        @action = 'Update',
        @ref_id = i.trans_id, 
        @trail_date = GETDATE()
    FROM INSERTED i

    INSERT INTO tbl_auditTrail (audit_trans,action,ref_id,trail_date)
    VALUES (@transaction,@action,@ref_id,@trail_date)
END
GO
像这样的东西。