我使用的是 SQL Server 2008,我们有一个包含 150 个表的数据库。我们在每个表中都引入了 systimestamp DATETIME 列。每当在表上执行插入/更新操作时,我们都会使用当前时间戳更新此列。
如何编写查询以在单个结果集中获取数据库的最新(基于 systimestamp 列)100 条记录?
我使用的是 SQL Server 2008,我们有一个包含 150 个表的数据库。我们在每个表中都引入了 systimestamp DATETIME 列。每当在表上执行插入/更新操作时,我们都会使用当前时间戳更新此列。
如何编写查询以在单个结果集中获取数据库的最新(基于 systimestamp 列)100 条记录?
根据上面的评论,你需要的是这样的:
这会将每个表的前 100 个结果整理到一个临时表中,然后将前 100 行返回给您。
编辑:根据评论中提供的进一步信息,确定 ID 字段实际上可能在每个表上都有不同的名称。以下 SQL 将列出整个数据库中所有表的前 100 条最后编辑的记录,显示主键值、表名和 systimestamp:
您也可以轻松扩展它以显示主键列的列名。
我建议创建一个视图,其中所有表联合 systimestamp 列。然后通过 systimestamp 将您的选择查询应用于该视图订单,限制为 100