4

我必须在应用程序中为具有数十万条记录的表创建视图。出于显而易见的原因,我不想一次全部检索它们。

约定是创建存储过程来查询数据库表,所以我的计划是创建一个存储过程来返回记录的间隔(如记录 2000 到 3000)。我知道使用嵌套查询来检索一系列记录的技巧TOP,但据我所知,您不能将参数参数化为TOP.

这将DataTable在 C# 应用程序中与 datasets 和 s 一起使用。

我该怎么做?

4

2 回答 2

4

您可以利用 SQL Server 2008 中的 ROW_NUMBER。下面的查询将根据行号仅返回 10 行。

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT * 
FROM Ordered
WHERE RowNumber BETWEEN 21 AND 30
于 2012-05-15T20:08:51.890 回答
3

可以将参数参数化为顶部。将论点括在(大括号)中。

如果您无论如何都需要它们,那么一次获得所有它们会更有效。不需要分块。

于 2012-05-15T20:06:04.750 回答