sqlserver存储过程----通用分页

下面这个sql是sqlserver中通用分页存储过程:
 

CREATE PROC proc_paging (
@pageSize nvarchar (50),
@currentPage nvarchar (50),
@columnnames nvarchar (MAX),
@tablename nvarchar (50),
@orderbycolumn nvarchar (50),
@wherewithand nvarchar (MAX)
) --创建存储过程
AS
BEGIN
-- 声明变量
DECLARE
@SQL nvarchar (MAX) -- 拼接sql
SET @SQL =
'select top ' +@pageSize +@columnnames + ' from (
select ROW_NUMBER() over(order by ' + @orderbycolumn + ') as rowid ,' +@columnnames + '
from ' + @tablename + '
where 1=1 ' + @wherewithand + '
)as A
where rowid> (' +@pageSize + ')*((' + @currentPage + ')-1)' -- 执行sql 命令
EXEC (@SQL)
END
go

--测试
EXEC proc_paging 10, 1 ,'*','loginfo' , 'id', ''

 
原文地址:https://www.cnblogs.com/nearpengju123/p/5652939.html