数据库的连贯只读视图

时间:2012-04-13 07:26:58

标签: sql database

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

我是否提到我不是一个sql人?

1 个答案:

答案 0 :(得分:1)

你能否:

按ID订购,获得前10000,获得最后的ID。

第二次过滤大于最后一个id,获得下一个10000。

在完成之前一直这样做

Select top(10000) * from Table order by id

获取最后一个ID

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

当然最后用数字代替

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