我需要在表中查看sql列,最近使用上次修改日期更改了
你能帮我查询一下最新的修改吗?
原始表:
S.No Employee id First Name Last Name Address 1
1 00007 J Siva East st
2 020007 G Moorthy West street
3 300007 gan thanu East st
4 100007 esh Moor West street
修改后的表格
S.No Employee id First Name Last Name Address 1 1 00007 Jun Siva East st 2 020007 Gon Moorthy West street 3 300007 gan thanu East st 4 100007 esh Moor West street
我只需要获取2行以下:
S.No Employee id First Name Last Name Address 1
1 00007 Jun Siva East st
2 020007 Gon Moorthy West street
答案 0 :(得分:0)
解决方案1:
您必须ADD
表格中的列{strong> Modified_Date
,并在每次更新时使用 GETDATE()
更新列
每次更新列时,都很容易找到最近更新的列。
S.No Employee id First Name Last Name Address 1 Modified_Date
1 00007 Jun Siva East st 2018-04-18
2 020007 Gon Moorthy West street 2018-04-18
3 300007 gan thanu East st NULL
4 100007 esh Moor West street NULL
您可以使用以下方式获取最近更新的值:
SELECT *
FROM Your_Table
WHERE Modified_Date IS NOT NULL
ORDER BY Modified_Date DESC
解决方案2:
否则,您必须创建 TRIGGERS
来跟踪更新。
答案 1 :(得分:0)
单独的SQL无法“监视”数据的变化。它只是一种查询语言,您决定何时(以及是否)调用。
但是,DBMS特定的机制可以帮助您监视数据更改,而无需轮询(定期重新查询)。例如,SQL Server具有SqlDependency
。
或者您可以实现向客户端应用程序发送通知的触发器,这些触发器可能有自己的一组权衡。
答案 2 :(得分:0)
您似乎无法出于任何原因修改源数据库的架构,因为之前与修改日期和触发器相关的答案应该足够了。或者,您可以将数据轮询到单独的审计表中,并使用WHERE子句和校验和定期执行比较。但是,您可能会错过更改,因为轮询机制不会由数据更改触发,并且值在轮询间隔中可能会多次更改。