SQL server 2008 分页存储过程


GO
/****** Object:  StoredProcedure [dbo].[T_GetPager]    Script Date: 03/23/2015 14:35:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[T_GetPager]    
@PageSize INT,    
@PageIndex INT,    
@orderby varchar(150),  
@strWhere varchar(4000),  
@tablename varchar(64),  
@cols varchar(4000)  ,
@groupby varchar(256)
   
AS     
Begin  
 declare @strSQL varchar(5000)  
 declare @b bigint,@e bigint  
 declare @order varchar(160)  
   
 IF(@orderby<>'')  
  SET @order = ' ORDER BY '+@orderby  
 ELSE  
  SET @order = ' ORDER BY  id DESC'  
  
 SET @b=@PageSize*(@PageIndex-1)+1  
 SET @e=@PageSize*@PageIndex  
  
 SET @strSQL = 'select  ' + @cols  
 SET @strSQL = @strSQL + ' from '  
 SET @strSQL = @strSQL+ '(select row_number() over (' + @order + ') row ,' + @cols + ' from ' + @tablename  
 IF (@strWhere<>'')  
  SET @strSQL= @strSQL + ' WHERE ' + @strWhere   
   IF(@groupby<>'')
	SET @strSQL=@strSQL + ' group by ' + @groupby 
 SET @strSQL = @strSQL + ') '  
 SET @strSQL = @strSQL + @tablename   
 if(@PageSize>0)
	begin
		SET @strSQL = @strSQL + ' where row between ' + CAST(@b AS varchar)  
		SET @strSQL = @strSQL + ' and ' + CAST(@e AS varchar)  
	end
   
   
 IF(@groupby<>'')
	SET @strSQL=@strSQL + ' group by ' + @groupby 

 
 SET @strSQL = @strSQL +' ' + @order  
End  
  print @strSQL
exec(@strSQL)  




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值