我必须在应用程序中为具有数十万条记录的表创建视图。出于显而易见的原因,我不想一次全部检索它们。
约定是创建存储过程来查询数据库表,所以我的计划是创建一个存储过程来返回记录的间隔(如记录 2000 到 3000)。我知道使用嵌套查询来检索一系列记录的技巧TOP
,但据我所知,您不能将参数参数化为TOP
.
这将DataTable
在 C# 应用程序中与 datasets 和 s 一起使用。
我该怎么做?
我必须在应用程序中为具有数十万条记录的表创建视图。出于显而易见的原因,我不想一次全部检索它们。
约定是创建存储过程来查询数据库表,所以我的计划是创建一个存储过程来返回记录的间隔(如记录 2000 到 3000)。我知道使用嵌套查询来检索一系列记录的技巧TOP
,但据我所知,您不能将参数参数化为TOP
.
这将DataTable
在 C# 应用程序中与 datasets 和 s 一起使用。
我该怎么做?
您可以利用 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
您可以将参数参数化为顶部。将论点括在(大括号)中。
如果您无论如何都需要它们,那么一次获得所有它们会更有效。不需要分块。