我有一个主表,比如说mast_tbl,这个表上的每个更改都作为hst_mast_tbl的不同条目。两个表中都有col讨论状态变化。现在,如果我想跟踪过去10天内只有状态发生变化的记录数量,我该如何以最简单的方式实现?
要使用滞后函数,有时可能会有更多列在主表中更新,因此我的历史记录表中有多于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
像这样的东西。