分页的存储过程

问题描述

支持分页和排序功能,传入SQL语句、页索引、页容量即可实现分页的存储过程,急用!

解决方案

解决方案二:
网上搜一下吧,这个存储过程一大把,
解决方案三:
setANSI_NULLSONsetQUOTED_IDENTIFIERONgoCREATEprocedure[dbo].[sp_jinqi_new_article_dal]@sqlWherevarchar(5000)='',--条件语句(不用加where)@pageSizeint=10,--每页多少条记录@pageIndexint=1,--指定当前为第几页@totalRecordint=0output--返回记录总数AS/*用于分页查询记录*/BEGINSETNOCOUNTON;Declare@sqlnvarchar(4000);Declare@totalPageint;--计算总记录数set@sql='select@totalRecord=count(*)fromTable1tinnerjoinTable2son(t.column_id=s.column_idandt.language_id=s.language_id)wheret.flag=1'+@sqlWhereEXECsp_executesql@sql,N'@totalRecordintOUTPUT',@totalRecordOUTPUT--计算总记录数--计算总页数select@totalPage=CEILING((@totalRecord+0.0)/@pageSize)set@sql='Select*FROM(selectROW_NUMBER()Over(orderbyt.author_timedesc)asrowId,t.*,s.column_type,s.column_name_english,s.column_save_path,casewhenDateDiff(day,getdate(),dateadd(day,s.page_new_days,t.author_time))>0then1else0endis_newfromTable1tinnerjoinTable2son(t.column_id=s.column_idandt.language_id=s.language_id)wheret.flag=1'+@SqlWhere--处理页数超出范围情况if@PageIndex<=0Set@pageIndex=1if@pageIndex>@totalPageSet@pageIndex=@totalPage--处理开始点和结束点Declare@StartRecordintDeclare@EndRecordintset@StartRecord=(@pageIndex-1)*@pageSize+1set@EndRecord=@StartRecord+@pageSize-1--继续合成sql语句set@Sql=@Sql+')astwhererowIdbetween'+Convert(varchar(50),@StartRecord)+'and'+Convert(varchar(50),@EndRecord)print@sqlExec(@Sql)END

解决方案四:
我也想要,嘿嘿
解决方案五:
createprocselectPage(@indexint,--页索引@sizeint--页容量)asbegindeclare@startindexintdeclare@endindexintif(@index=1)set@startindex=@index*(@size-1)elseset@startindex=@index*(@size-1)+1set@endindex=@index*@sizeselect*from(selectrow_number()over(orderby'字段')asNum,*fromtablename)AStempwhereNumbetween@startindexand@endindexend

解决方案六:
该回复于2012-03-26 13:04:38被版主删除

时间: 2024-08-28 06:34:45

分页的存储过程的相关文章

分页 SQLServer存储过程

server|sqlserver|存储过程|分页 /*--用存储过程实现的分页程序显示指定表.视图.查询结果的第X页对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法如果视图或查询结果中有主键,不推荐此方法--邹建 2003.09--*//*--调用示例exec p_show '地区资料'exec p_show '地区资料',5,3,'地区编号,地区名称,助记码','地区编号'--*//*因为要顾及通用性,所以对带排序的查询语句有一定要求.如果先排序,再出结果.就是:exe

通用分页的存储过程函数

存储过程|分页|函数|存储过程|分页|函数 ALTER PROCEDURE Pagination( @tblName  varchar(255),   -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列  @fldName  varchar(255)='',  -- 排序的字段名 @PageSize  int = 10,    -- 页尺寸 @PageIndex  int = 1,    -- 页码 @doCount  bit = 0,    -

用于分页的存储过程

存储过程|分页 /*该存储过程用于显示注册用户的分页*/CREATE PROCEDURE usp_PagedUserReg     @iPage      int,     @iPageSize  intASBegin --关闭自动计数器功能SET NOCOUNT ON --declare variables declare  @iStart       int          -- start recorddeclare  @iEnd         int          -- end 

SQL Server两种分页的存储过程使用介绍_MsSql

由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法. 一. 以学生表为例,在数据库中有一个Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel 要求:查询学生的信息,每页显示5条记录 二.第一种方式分页:利用子查询 not

几种SQL Server分页的存储过程写法以及性能比较

几种SQL Server分页的存储过程写法以及性能比较 存储过程的5种分页写法,下面的代码是从忘了什么时候从别人那Ctrl+C来的,所以仅仅作为收藏,希望作者看到不要喷我.  ------创建数据库教程data_Test ----- create database data_Test  GO use data_Test GO create table tb_TestTable   --创建表 (     id int identity(1,1) primary key,     userName

实现SQL分页的存储过程代码_MsSql

SQL分页的存储过程代码,需要的朋友们直接拿去用,使用非常简单. 分享代码如下 USE [SendMessage] GO /****** Object: StoredProcedure [dbo].[pages] Script Date: 07/09/2015 13:46:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[pages] ( @tbname nvarchar(100), --要

sql 通用高效分页代码(存储过程是带有sql注入)(1/2)

sql 通用高效分页代码(存储过程是带有sql注入) 大家可以看到上面的存储过程中是通过一些步骤最终拼接成一个sql字符串,然后通过exec执行这个串得到分页的结果. 我们假定要做一个这样的查询,通过用户名username模糊查询用户,为了叙述方便,便于理解我们只考虑取第一页的情况,取出存储过程中取第一页的拼串行如下: 为了便于说明问题,我们可以假定@pagesize为20,@strgetfields为 '*',@tblname为useraccount,@strorder为' order by

千万级分页高效存储过程

这两天测试了前几天写的SQL2005专用分页的存储过程,当数据量达到2千多万的时候,效率相当的低,每次执行都要8秒左右(CPU:Q6600).不过在2百多万数据量的情况下性能还是蛮不错的,在网上找了找,发现这下面的这两个,其实还是一个,不过后面那个是灵活了许多,仅供参考. 复制  保存 /****** Object: StoredProcedure [dbo].[GetRecordFromPage] Script Date: 07/23/2008 18:42:05 ******/ SET ANS

.Net通用分页类 存储过程分页版

CODE: using System; using System.Collections.Generic; using System.Text; /**//// <summary> /// .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择) /// 作者:启程 www.letwego.cn /// 可用于任意用途,请保留作者信息,谢谢! /// </summary> namespace letwego.cn {     public class PageSt