分页时有效返回总数?

时间:2013-10-07 17:26:21

标签: sql-server-2012

对于分页,我通常在sql server 2012存储过程中使用这样的东西(使用sys.system_columns,不确定这是否是一个很好的表来演示):

DECLARE
    @page INT = 10,
    @pagesize INT = 10;

WITH syscols AS
(
    SELECT
        TotalRows = COUNT(1) OVER (),
        RowNo = ROW_NUMBER() OVER (ORDER BY  name),
        Name
    FROM sys.system_columns c
)
SELECT *
FROM syscols
WHERE RowNo BETWEEN 1 + (@page - 1) * @pagesize AND  @page * @pagesize
ORDER BY RowNo;

我讨厌在每一行中包含TotalRows编号并且想知道,如果有正确的方法来返回TotalRows编号(例如OUTPUT参数) - 但是没有使用表变量或任何会使查询效率降低的东西?< / p>

0 个答案:

没有答案