SQL2005 分页存储过程

本文介绍了一种使用 SQL Server 2005 中的 row_number 函数实现的高效分页存储过程。此过程通过传入表名、排序字段、每页记录数及页号等参数,利用 row_number 函数生成行号,进而实现灵活且高效的分页查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在使用sqlserver2005的数据库编码,查到有一个row_number(order by 【字段】)的函数,通过该函数进行分页非常的方便,请大家看看我写的分页存储过程。
--分页存储过程
create procedure [dbo].[proc_TestPage]
--表名
@tablename nvarchar(255),
--排序字段
@sortcolumn  nvarchar(255),
--每页记录数
@pagecount  int,
--页号
@pageindex  int
as
declare @beginrow int
declare @endrow int

set @beginrow=0
set @endrow=0

set @beginrow=(@pageindex-1)*@pagecount+1
set @endrow=@pageindex*@pagecount

declare @sqlstr nvarchar(4000)

set @sqlstr='with table1 as(select *,ROW_NUMBER() OVER(ORDER BY '+ @sortcolumn+' ) AS ROW'+
            ' FROM '+@tablename+') '
set @sqlstr=@sqlstr +' SELECT * FROM TABLE1 WHERE ROW BETWEEN '+cast(@beginrow as nvarchar )+' and '+cast(@endrow as nvarchar)

exec(@sqlstr)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值