0

对于分页,我通常在 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 参数) - 但不使用表变量或任何会降低查询效率的东西?

4

0 回答 0