Sql-Server

如何更新每行的時間並檢查其是否更新

  • February 16, 2021

這些是數據庫中的表名和更新時間我想獲取特定表的更新狀態和時間。對於每天發生更新的表將狀態設置為“預期”,當每天錯過更新時將狀態設置為“不預期”

也許你需要在

CREATE TRIGGER tr_bu_check_gap
BEFORE UPDATE
ON {tablename}
FOR EACH ROW
SET NEW.Status = CASE WHEN DATEDIFF(NEW.Time, OLD.Time) > 1
                     THEN 'not expected'
                     ELSE 'expected'
                     END;

?

PS。這只是 MySQL 的解決方案。對於 SQL Server,它可能類似,但需要語法調整。

如果您只需要檢查表是否每天更新,那麼您可能可以使用此查詢。您需要對其進行一些更改以提供所需的結果。例如像 Akina 所指的 CASE 語句。並且不要忘記更改 WHERE 子句中的數據庫名稱或將其完全刪除。

 SELECT T1.database_id, T1.object_id, T1.last_user_update, T3.type, T3.type_desc, T2.name
 FROM sys.dm_db_index_usage_stats T1
 LEFT OUTER JOIN sys.objects T2 ON T1.object_id = T2.object_id
 LEFT OUTER JOIN sys.indexes T3 ON T1.object_id = T3.object_id
 WHERE T3.type in (0,1)--heaps and clustered indexes
 AND T1.database_id = DB_ID('StackOverFlow2010')

引用自:https://dba.stackexchange.com/questions/285469