MS-SQL 分页函数+ASP

本文介绍了一个用于MS-SQL分页查询的存储过程,该存储过程接受参数如页码、页大小、主键、查询列、表名和查询条件,生成SQL语句以实现分页效果。此外,还提供了无查询条件时的处理方式。
摘要由CSDN通过智能技术生成

共需要两个存储过程,第一个是负责分页的

  1. CREATE PROCEDURE [dbo].[USP_GetList] 
  2. (
  3.  @pageIndex int = 1 -- 当前页码0 表示返回所有符合内容
  4. ,@pageSize int = 10 -- 页尺寸
  5. ,@SID nvarchar(30) = '' -- 主键字段
  6. ,@strGetField nvarchar(1000) = '*' -- 需要返回的列
  7. ,@strTableName nvarchar(30) = '' --表名    
  8. ,@strWhere nvarchar(2000) = '' -- 查询条件(注意: 条件中要带where)
  9. ,@strOrderBy nvarchar(300) = '' -- 排序  
  10. --,@MemberID int=0 --会员ID
  11. )
  12. AS
  13. SET NOCOUNT ON
  14. DECLARE @strSQL nvarchar(4000)
  15. DECLARE @startPos int
  16. DECLARE @endPos int
  17. DECLARE @num int
  18. SET @startPos=@pageSize*(@pageIndex-1)+1
  19. SET @endPos=@startPos+@pageSize-1
  20. --页大小*(页数-1)
  21. SET @num = @pageSize * (@PageIndex - 1)
  22. IF @PageIndex!=0
  23.     BEGIN
  24.         IF @strWhere != ''
  25.             SET @strSQL = 'SELECT TOP '+ cast(@pageSize as nvarchar(10)) +' '+ @strGetField +' FROM '+ @strTableName +' WHERE ('+ cast(@SID as nvarchar(30)) +' NOT IN (SELECT TOP '+ cast(@num as nvarchar(20)) +' '+ cast(@SID as nvarchar(30)) +' FROM '+ @strTableName +' where '+@strWhere+' ORDER BY '+ cast(@strOrderBy a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值