sql 2005分页存储过程

 @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @OrderType    bit = 0,            -- 设置排序类型, 非 0 值则降序
    @IsCount      bit=0,              -- 设置排序类型, 非 0 值则降序
    @strWhere     varchar(3000) ='',   -- 查询条件 (注意: 不要加 where)
    @StartIndex   varchar(255),
    @maxRows      varchar(255)
AS

declare  @strSQL   varchar(3000)      -- 主语句
declare  @strCount   varchar(3000)    -- 返回数据的总条数语句
declare @strOrder varchar(3000)       -- 排序类型语句

if @OrderType != 0
begin
    set @strOrder = ' order by ' + @fldName +' desc'
end
else
begin
    set @strOrder = ' order by ' + @fldName +' asc'
end

set @strSQL ='select * from (select *, ROW_NUMBER() OVER ('+ @strOrder +') as Pos from ' + @tblName + ') as T where T.Pos > ('+ @StartIndex +') and T.Pos <'+ @maxRows
set @strCount ='select count(*) as Total from  ' + @tblName + ' as count'

if @strWhere !=''
begin  
set @strSQL ='select * from (select *, ROW_NUMBER() OVER ('+ @strOrder +') as Pos from ' + @tblName + ' where ' + @strWhere + ') as T where  T.Pos > ('+ @StartIndex +') and  T.Pos <'+ @maxRows
set @strCount ='select count(*) as Total from  ' + @tblName + ' as count  where ' + @strWhere
end

if @IsCount!=0   ----按需要返回数据的总条数
begin
exec (@strCount)
end

exec (@strSQL)

-------------寒冰制作--------------- 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值