`
qcyycom
  • 浏览: 190986 次
社区版块
存档分类
最新评论

sql 存储过程分页

阅读更多

 

USE [Graduate]
GO
/****** 对象:  StoredProcedure [dbo].[Common_Sp_Pagination]    脚本日期: 04/16/2012 21:02:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[Common_Sp_Pagination]
    @StrSql NVARCHAR(MAX) ,
    @PageIndex INT ,--当前页码
    @PageCount INT ,--每页条数
    @SortClause NVARCHAR(500) ,--排序字段,不加“Order by”
    @Filter NVARCHAR(MAX) ,    --条件,可以为空,不加where
    @TotalNum INT OUTPUT --总记录条数
AS 
    DECLARE @ExeSql NVARCHAR(MAX)
    DECLARE @OrderByStr NVARCHAR(500)
    DECLARE @StartRowIndex INT
    DECLARE @EndRowIndex INT
    SET @StartRowIndex = ( @PageIndex - 1 ) * @PageCount + 1
    SET @EndRowIndex = @PageIndex * @PageCount


 
 /*--条件筛选--*/
    IF @Filter IS NOT NULL
        AND @Filter <> '' 
        BEGIN
            SET @StrSql = @StrSql + ' WHERE 1=1 ' + @Filter
        END
        
    /*--排序--*/
    IF @SortClause IS NOT NULL
        AND @SortClause <> '' 
        BEGIN
            SET @OrderByStr = ' order by ' + @SortClause 
            SET @ExeSql = ' SELECT * FROM (' + @StrSql
        + ') AS A where rowIndex between ' + CAST(@StartRowIndex AS VARCHAR)
        + ' And ' + CAST(@EndRowIndex AS VARCHAR) + ' ' + @OrderByStr  
   
        END
        ELSE
        BEGIN
    SET @ExeSql = ' SELECT * FROM (' + @StrSql
        + ') AS A where rowIndex between ' + CAST(@StartRowIndex AS VARCHAR)
        + ' And ' + CAST(@EndRowIndex AS VARCHAR) + ' ' 
        END
   
        PRINT @StrSql
        PRINT @ExeSql
    /*---查询总数-*/
    CREATE TABLE #temp ( TotalNum INT )               
    DECLARE @InsertTemp VARCHAR(max)
    SET @InsertTemp = 'insert into #temp select count(*) from (' + @StrSql + ') as  A'
        --PRINT @InsertTemp
    EXEC(@InsertTemp)
    SELECT  @TotalNum = TotalNum
    FROM    #temp
    DROP TABLE #temp
    
   /*--查询分页信息--*/     
    EXEC(@ExeSql)

更多信息请查看 java进阶网 http://www.javady.com

分享到:
评论

相关推荐

    sql存储过程分页

    ### SQL存储过程分页知识点详解 #### 一、SQL Server 2000 分页逻辑方法 在SQL Server 2000中实现分页功能通常较为复杂,因为该版本的数据库管理系统并未提供内置的分页支持。因此,开发者需要通过自定义存储过程...

    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