gpt4 book ai didi

sql-server - 我可以从 SQL Server 读取元数据以了解最后更改的行/表吗?

转载 作者:行者123 更新时间:2023-12-01 13:06:58 25 4
gpt4 key购买 nike

我们有一个包含数百表的数据库。

SQL Server 中是否有某种 数据源,我可以以编程方式 查询以获取最后更改 表的名称以及排?

或者我们是否需要自己在每个表中使用名为LastChangedDateTime等的字段来实现?

最佳答案

就查明表最后一次修改的时间而言,有一种偷偷摸摸的方法可以访问此信息,但它不会告诉您哪一行被更改,只是何时更改。SQL Server 维护索引使用统计信息,并记录索引的最后一次搜索/扫描/查找和更新。它还按用户/系统拆分。

仅过滤用户表,任何插入/更新/删除都会导致索引发生更新,并且 DMV 将使用此新信息进行更新。

select o.name, 
max(u.last_user_seek) as LastSeek,
max(u.last_user_scan) as LastScan,
max(u.last_user_lookup) as LastLookup,
max(u.last_user_update) as LastUpdate
from sys.dm_db_index_usage_stats u
inner join sys.objects o on o.object_id = u.object_id
where o.type = 'U' and o.type_desc = 'USER_TABLE'
group by o.name

但这并不理想,堆没有索引作为开始 - 我从未考虑将它用于生产代码作为跟踪机制,只是作为检查明显更改的取证工具。

如果您想要正确的行级变更跟踪,您要么必须内置它,要么查看 SQL 2008 特定的变更数据捕获功能。

关于sql-server - 我可以从 SQL Server 读取元数据以了解最后更改的行/表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com