如何找到更新记录的列明智计数

时间:2018-12-26 07:37:00

标签: sql-server

我是mssql服务器数据库的新手。我有一个用例,必须找出以下两件事:

  1. 最近1个小时在特定表中更新了多少条记录。

  2. 最近1个小时的更新记录的按列计数(该列的更新及其在特定表中的计数)。

mssql服务器数据库中是否存在任何元数据表,我可以在其中找到上述信息,或者可以使用其他替代方法来找到相同的信息?

2 个答案:

答案 0 :(得分:0)

对于第一种情况,您的表需要具有数据类型为DATETIMETIMESTAMP的UPDATE_DATE列。

SELECT count(*) FROM Table1 WHERE Update_Date >= DATEADD(HOUR, -1, GETDATE());

对于后一种情况,我建议您编写触发器以记录更改的列。您的日志表可以采用

的格式
TableName, Column_Name, From, To

之后,您可以查询该表并生成报告。这也是一个好习惯,因为您将不会使用生产/资源密集型数据。

如果创建触发器对您有意义,请检查this linkCOLUMNS_UPDATED功能

答案 1 :(得分:0)

据我所知,没有用于此目的的元数据。 对于第一个要求,您可以创建一个新字段,例如

Last_Update DATETIME default GETDATE(),

并据此构建您最近一个小时的查询:

WHERE Last_Update >= DATEADD(h, -1, GETDATE()

第二项要求可以通过将触发器与表的组合来完成,在该表中存储以后要检查的结果。