2
我使用存储的proc在大记录集上分页服务器端 存储的proc有一个相当复杂的where子句。SQL分页返回分页之前的记录总数
我还需要分页之前的记录总量才能在UI上可视化该数字。
这样做的最好方法是什么?
此刻我在做
ALTER PROCEDURE [Schema].[ReturnRecords]
@PageSize int = 20,
@StartIndex int = 0
AS
SELECT * FROM
(
SELECT *, TOP(COUNT(e._ROWID) OVER())
FROM TABLE_NAME
WHERE Column=1 AND Column1=2 AND Column2=2 AND Column3=2 AND Column4=2
) AS X
WHERE X.RowNum BETWEEN @StartIndex AND (@StartIndex + @PageSize)
所以我记录的最后一列包含的记录分页前的总量。
另一种方法是创建一个临时表内查询, 再算上记录并返回临时表,但它并不像做这件事的好办法...
我喜欢返回记录总数作为存储过程的输出参数
有什么想法?
真的吗?您必须在该网站上创建一个帐户才能阅读文章?我很想下决心,但是,这可能是不公平的,因为我没有真正阅读过这篇文章。 – Jonathan
@Jonathan,试试这个:[bugmenot] – oluckyman
@oluckyman - 谢谢。据我记得,SSC曾经允许你解散唠叨屏幕并阅读文章。看起来他们已经改变了这一政策,但我仍然无能为力。我无法在这里重现这篇文章。 –