当前位置:主页   - 电脑 - 网站开发 - ASP.Net
MS-SQL 分页函数+ASP
来源:网络   作者:   更新时间:2012-08-13
收藏此页】    【字号    】    【打印】    【关闭

  CREATE PROCEDURE [dbo].[USP_GetList]

  (

  @pageIndex int = 1 -- 当前页码0 表示返回所有符合内容

  ,@pageSize int = 10 -- 页尺寸

  ,@SID nvarchar(30) = '' -- 主键字段

  ,@strGetField nvarchar(1000) = '*' -- 需要返回的列

  ,@strTableName nvarchar(30) = '' --表名

  ,@strWhere nvarchar(2000) = '' -- 查询条件(注意: 条件中要带where)

  ,@strOrderBy nvarchar(300) = '' -- 排序

  --,@MemberID int=0 --会员ID

  )

  AS

  SET NOCOUNT ON

  DECLARE @strSQL nvarchar(4000)

  DECLARE @startPos int

  DECLARE @endPos int

  DECLARE @num int

  SET @startPos=@pageSize*(@pageIndex-1)+1

  SET @endPos=@startPos+@pageSize-1

  --页大小*(页数-1)

  SET @num = @pageSize * (@PageIndex - 1)

  IF @PageIndex!=0

  BEGIN

  IF @strWhere != ''

  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 as nvarchar(255)) +' )) and '+@strwhere+' ORDER BY '+cast(@strOrderBy as varchar(255)) + ''

  else

  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 +' ORDER BY '+ cast(@strOrderBy as nvarchar(255)) +' )) ORDER BY '+ cast(@strOrderBy as varchar(255)) + ''

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明