`
wyf
  • 浏览: 436891 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

sql存储过程分页

    博客分类:
  • SQL
阅读更多

ALTER  procedure Consignment  
@tablename varchar(80) ,  
@strOrder varchar(50) ,  
@PageIndex int = 1,  
@PageSize int = 15,  
@strGetFields varchar(200) = '*',  
@OutPut int output  
as   
Begin  
Declare @strSql varchar(500)  
  
DECLARE   @SQL   NVARCHAR(1000)  
DECLARE   @R BIGINT  
SET   @SQL=  N'select @R=count(*) from  '+@TableName  
EXEC  SP_EXECUTESQL   @SQL,  N' @R BIGINT OUTPUT',  @R OUTPUT  
SET   @OutPut=  @R  
  
if(@PageIndex =1)  
Begin  
   set @strSql='select top '+str(@PageSize)+' '+@strGetFields+' from '+@tablename+' order by '+@strOrder  
End  
Else  
   set @strSql='select top '+str(@PageSize)+' '+@strGetFields+' from '+@tablename+' where ('+@strOrder  
             +' >= ( select Max('+@strOrder+') from ( select top '+str(@PageSize*@PageIndex)+' * from '+@tablename+' order by '  
             +@strOrder+' ) as tempTable)) order by '+ @strOrder  
   select @strSql    
exec(@strSql)  
  
End  
 alter procedure AllProce
@tablename varchar(200) ,   --表名  
@strGetFields varchar(200) = '*',  --查询列名  
@PageIndex int = 1 ,         --页码  
@pageSize int = 15,         --页面大小  
@strWhere  varchar(100) = '',     --查询条件  
@strOrder varchar(100) = '', --排序列名  
@intOrder bit = 0,        --排序类型  1为升序  
@CountAll bigint output              --返回纪录总数用于计算页面数      
as  
begin  
declare @strSql varchar(500)  --主语句  
declare @strTemp varchar(100) --临时变量  
declare @strOrders varchar(50) --排序语句  
declare @table varchar(70)  
  
declare   @SQL   nvarchar(1000)  
declare   @R bigint  
set   @SQL=  N'select @R=count(*) from  '+convert(nvarchar(200),@TableName)  
exec  SP_EXECUTESQL   @SQL,  N' @R BIGINT OUTPUT',  @R OUTPUT  
set   @CountAll=  @R  
if @intOrder = 0  
begin  
    --为0是升序  
    set @strTemp = '>(select max'  
    set @strOrders =  ' order by  '+@strOrder+' asc '  
end  
else  
begin  
    --否则为降序  
    set @strTemp = '<(select min'  
    set @strOrders = ' order by  '+@strOrder+' desc '  
end  
if @PageIndex =1        --第一页直接读出纪录  
begin  
    if @strWhere = ''  
    begin  
         set @strSql = 'select top '+str(@pageSize)+' '+@strGetFields+' from '+@tablename+' '+@strOrders  
     end  
    else    
    begin  
         set @strSql = 'select top '+str(@pageSize)+' '+@strGetFields+ ' from '+@tablename+' where '+@strWhere+' '+@strOrders  
      
    end  
end  
else  
begin  
    set @strSql = 'select top'+str(@pageSize)+' '+@strGetFields+' from '+@tablename+' where '+@strOrder+' '+@strTemp+' ('+@strOrder+')'  
                  +' from (select top '+str((@pageIndex-1)*@pageSize)+' '+@strGetFields+' from '+@tablename+ ' '+@strOrders+ ') as tempTable ) '+@strOrders  
           
    if @strWhere != ' '  
    begin  
       set @strSql = 'select top '+str(@pageSize)+ ' '+@strGetFields+' from '+@tablename+ ' where '+@strOrder+ ' '+@strTemp+' ('+@strOrder+') '  
                   +' from(select top '+str((@pageIndex-1)*@pageSize)+' '+@strGetFields+' from '+@tablename+' where '+@strWhere+' ' +@strOrders+') as tempTable) where '+@strWhere+' '+@strOrders  
     
    end  
end   
exec(@strSql)      
end  
GO  
 
分享到:
评论

相关推荐

    sql 存储过程分页

    ### SQL存储过程分页技术详解 在数据库管理与应用程序开发中,数据的高效查询与展示是至关重要的。尤其是在处理大量数据时,分页查询能够显著提高数据加载速度和用户体验。SQL存储过程作为一种预编译的代码块,可以...

    asp.net SQL存储过程分页

    总结,ASP.NET SQL存储过程分页是一个重要的数据库查询优化技术,它结合了存储过程的高效性和分页的实用性。通过创建合适的存储过程,正确配置ASP.NET的控件,以及处理好分页事件,我们可以构建出高效且用户友好的...

    sql存储过程分页代码

    ### SQL存储过程分页代码详解 #### 一、概述 在数据库操作中,分页查询是一种常见的需求。尤其是在处理大量数据时,为了提高查询效率和用户体验,通常会采用分页的方式来展示数据。本文将详细解析一个SQL Server中...

    asp分页(普通sql查询分页+sql存储过程分页)

    这是我整理的,两种不同方式的分页方法,之前我做过测试的,如果数据量很大的话,然后对数据速度要求比较快的话,还是用sql存储过程分页比较好

    c#,sql存储过程分页技术实现

    c#,sql存储过程分页技术实现 主要运用sql存储过程进行分页实现,在进行分页实现,需要注意一下事项, * 在项目的根目录下面有一个db文件夹,请认真阅读,里面包含测试数据信息,当然你也可以 * 直接还原数据库即可

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    C#调用sql存储过程分页

    ### C#调用SQL存储过程实现分页功能详解 在.NET框架中,使用C#语言进行数据库操作是非常常见的。本文将详细介绍如何通过C#来调用SQL Server中的存储过程,并实现分页功能。这对于提高ASP.NET应用程序的性能、增强...

    sql 存储过程分页代码 支持亿万庞大数据量 速度非常快

    本话题将深入探讨如何利用SQL存储过程实现高效的分页功能,并针对亿万级的数据量进行优化。 在处理大数据量时,传统的SQL分页方法,如使用`LIMIT`或`OFFSET`,可能会遇到性能问题,因为它们需要扫描大量的行来找到...

    .net java sql存储过程分页

    本教程重点讲解了如何利用.NET、Java和SQL进行存储过程分页,这是一种在数据库级别实现分页的方法,可以显著提高查询效率。 首先,让我们了解一下什么是存储过程。存储过程是预编译的SQL语句集合,存储在数据库...

    经典的分页、排序SQL 通用存储过程.rar

    本文将详细解析"经典的分页、排序SQL 通用存储过程"所涉及的知识点,并给出如何实现这样的存储过程。 首先,分页是数据库查询中的一种优化策略,用于限制每次查询返回的结果数量,从而避免一次性加载大量数据导致的...

    最简单的SQL Server数据库存储过程分页

    ### 最简单的SQL Server数据库存储过程分页 #### 知识点概述 在处理大量数据时,分页查询是一项常见的需求。传统的T-SQL分页方法可能会导致性能问题,尤其是在面对百万级别的数据集时。本文介绍一种简单且高效的...

    速度最快sql分页存储过程

    ### 速度最快SQL分页存储过程详解 #### 概述 在数据库操作中,分页查询是一种非常常见的需求。为了提高查询效率并优化用户体验,设计一个高效、灵活且易于使用的分页存储过程变得尤为重要。本文将详细介绍一个被...

    SQL高效存储过程分页

    当我们谈论“SQL高效存储过程分页”时,我们主要关注如何利用存储过程来实现数据库查询的分页效果,这在大数据量的场景下尤为重要,因为直接查询所有数据可能会导致性能下降,甚至阻塞数据库服务。 分页是Web应用...

    sql分页 sqlserver中存储过程分页

    ### SQL Server 存储过程实现分页查询 #### 背景介绍 在数据库操作中,分页查询是非常常见的需求之一。特别是在数据量较大的场景下,分页不仅可以提高查询效率,还能改善用户体验。SQL Server 提供了多种方式进行...

    sql的存储过程-简单分页

    很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术

    高效分页存储过程 高效分页存储过程

    本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数:当前页码(PageNumber)和每页记录数(PageSize)。...

    分页存储过程 分页存储过程 分页存储过程

    分页存储过程 分页存储过程 分页存储过程 sql代码

Global site tag (gtag.js) - Google Analytics