6

我想执行一个在数据库中返回大量数据的选择查询。所述数据库迫使我将我的查询拆分为 10000 个结果的块,并带有偏移量 + 限制。当我遍历这些块时,其他人会更新数据库,这在某些情况下可能会使数据库多次返回同一行。我通过一个删除具有重复 ID 的行的后处理过滤器来处理它,但我想知道是否有一种方法可以构建一组 sql 查询,使我能够跨多个 select 语句获得数据库的一致视图。即,BEGIN+COMMIT 但用于选择。

我有没有提到我不是一个 sql 人?

4

1 回答 1

1

你能不:

按 ID 排序,获取前 10000 个,获取 LAST id。

第二次过滤大于 LAST id,得到下一个 10000。

做同样的事情直到你完成

Select top(10000) * from Table order by id

获取最后一个 id

Select top(10000) * from Table where id> LAST order by id

LAST 当然用数字代替

非常低的级别,但应该解决问题并消除重复

于 2012-04-13T08:07:22.887 回答