CREATE proc [dbo].[GetGridDataInfo]
(
@NodeId INT, //节点ID
@SordName varchar(30), //排序字段
@SordOrder varchar(10), //排序方式
@PageIndex varchar(20), //页面ID
@PageSize varchar(20) //页面展示大小
)
as
begin
DECLARE @SQL VARCHAR(5000)
SET @SQL = '
SELECT id, pId, name
FROM
(
SELECT ROW_NUMBER() OVER( ORDER BY ' + @SordName + ' ' + @SordOrder + ' ) AS RANK, *
FROM
(
SELECT id, pId, name FROM dbo.T_treeDemoInfo
WHERE pId = ' + CAST(@NodeId AS VARCHAR(10)) + '
UNION
SELECT B.* FROM dbo.T_treeDemoInfo A
INNER JOIN T_treeDemoInfo B ON A.ID = B.pId
WHERE A.pId = ' + CAST(@NodeId AS VARCHAR(10)) + '
) A
) TEMP
WHERE RANK BETWEEN STR(( ' + @PageIndex + ' - 1) * ' + @PageSize + ' + 1) AND STR( ' + @PageIndex + ' * '+ @PageSize + ') '
PRINT(@SQL)
EXEC(@SQL)
//服务器端F分页
//检索条数存储过程配合
//ROW_NUMBER OVER
本文介绍了一种使用SQL Server存储过程实现服务器端分页的方法。通过动态SQL语句及ROW_NUMBER() OVER()函数组合使用,实现了根据指定的节点ID、排序字段、排序方式、页面ID和页面展示大小进行数据检索。
1065

被折叠的 条评论
为什么被折叠?



