如何在Sql表中查找最后修改的行或记录?

时间:2017-03-06 11:26:58

标签: sql sql-update foreign-keys key primary-key

我有一张员工表,上面有他们的一般信息。如何从这个特定的表中找到最后修改的记录,此外我不能在这个数据库中添加任何更多的列?

4 个答案:

答案 0 :(得分:0)

如果存在DateModified列或类似内容,并且您想要10个最新行(例如),则可以使用如下查询:

SELECT Top 10 * FROM myTable ORDER BY DateModified DESC;

您没有指定SQL的风格,因此如果您使用的是Oracle,SQL Server或MS Access,那么查询可能会有所不同。

如果你没有这样的列,并且你想知道最近的添加的记录,如果主键是一个自动递增的数字,你可以做同样的事情,但排序通过PrimaryKey降序。如果你真的想要修改(即更新)记录,并且你没有DateModified列,那你就不走运了。没有办法知道。

答案 1 :(得分:0)

使用MAX Aggregate函数:

SELECT MAX(Modifieddate)
FROM your_table
WHERE your_conditions.  

答案 2 :(得分:0)

使用此代码:

SELECT * 
FROM Update_Table UT1
WHERE UT1.Modified_Date = (SELECT MAX(UT2.Modified_Date) 
FROM Update_Table UT2 
WHERE UT2.PK = UT1.PK
AND UT2.Last_User = user)

答案 3 :(得分:0)

使用此代码获取上次更新时间。

select top 1 a.object_id, b.name, a.last_user_update from sys.dm_db_index_usage_stats as a, sys.objects as b where a.object_id=b.object_id and b.name = 'your_table_name' order by last_user_update desc