数据库的连贯只读视图

mat*_*ieu 6 sql database

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

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

Ste*_*een 1

你能不:

按 ID 排序,获取前 10000 个,获取最后一个 id。

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

做同样的事情直到完成

Select top(10000) * from Table order by id
Run Code Online (Sandbox Code Playgroud)

获取最后一个id

Select top(10000) * from Table where id> LAST order by id
Run Code Online (Sandbox Code Playgroud)

LAST 当然用数字代替

水平很低,但应该解决问题并消除重复