0
select top 1000 from table1.

那么我如何继续下一个 1000 并从表中继续。有记录数超过数百万,我必须在漫长的过程中获取和处理信息..所以,考虑Cursor通过检索 1000 和下一个 1000 来使用。还有其他最好的方法吗?

4

1 回答 1

1

如果您使用的是 SQL Server 2005 或更高版本,则可以使用 row_number() 函数:

使用 ROW_NUMBER() 通过 SQL Server 2005 和 ASP.NET 对数据进行分页

但正如比利所评论的,这不是一个通用的 SQL 函数。

游标是一种非常糟糕的方法,尤其是在您执行断开连接的查询时,例如如果用户正在对结果进行分页。

如果您使用的是 2005 年以后的旧 SQL Server,或者您正在寻找通用方法,那么常见的方法是将结果选择到具有标识索引的临时表中,然后从该表中选择 index > = pagenumber * pageSize && index < (pagenumber * pageSize) + pageSize

于 2012-03-18T01:24:26.740 回答