`
xiaof0535
  • 浏览: 2933 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

MSSQL2005 分页存储过程

阅读更多
--调用方法:exec upPageDiv kucun,'id,ItemCode,ItemName','ItemCode asc','id>0',20,1,?,?
Create Procedure [dbo].[upPageDiv]
    @TableName varchar(200),            --表名
    @Fields varchar(5000)='*',          --字段名(默认为*)
    @OrderField varchar(5000),          --排序字段(必须!支持多字段)
    @sqlWhere varchar(5000)=Null,       --条件语句(不用加where)
    @pageSize int,                      --指定每页记录条数
    @pageIndex int=1,                   --指定当前页码
    @totalPage int output,              --返回总页数
    @totalRecord int output             --返回总记录数
As
Begin
    Begin Tran  --开始事务
    Declare @sql nvarchar(4000);

    --计算总记录数
    If (@sqlWhere='' Or @sqlWhere=Null)
        Set @sql='Select @totalRecord=Count(*) From '+@TableName
    Else
        Set @sql='Select @totalRecord=Count(*) From '+@TableName+' Where '+@sqlWhere

    Exec sp_executesql @sql,N'@totalRecord int output',@totalRecord output

    --计算总页数
    Select @TotalPage=Ceiling((@totalRecord+0.0)/@PageSize)

    If (@sqlWhere='' Or @sqlWhere=Null)
        Set @sql='Select * From (Select ROW_NUMBER() Over(Order By '+@OrderField+') As rowID,'+@Fields+' From '+@TableName
    Else
        Set @sql='Select * From (Select ROW_NUMBER() Over(Order By '+@OrderField+') As rowID,'+@Fields+' From '+@TableName+' Where '+@sqlWhere

    --处理页数超出范围情况
    If @PageIndex<=0
        Set @pageIndex=1

    If @pageIndex>@TotalPage
        Set @pageIndex=@TotalPage

     --处理开始点和结束点
    Declare @StartRecord int
    Declare @EndRecord int
   
    Set @StartRecord=(@pageIndex-1)*@PageSize+1
    Set @EndRecord=@StartRecord+@pageSize-1

    --继续合成sql语句
    Set @sql=@sql+') As '+@TableName+' Where rowID Between '+Convert(varchar(50),@StartRecord)+' And '+Convert(varchar(50),@EndRecord)

    Exec(@Sql)

    If @@Error<>0
        Begin
            RollBack Tran
            Return -1
        End
    Else
        Begin
            Commit Tran
            Return @totalRecord --返回记录总数
        End
End
分享到:
评论

相关推荐

    oracle和mssql分页存储过程-均通用

    综上所述,这个"oracle和mssql分页存储过程-均通用"的压缩包文件提供了一个跨平台的解决方案,帮助开发者在Oracle和MSSQL数据库中轻松实现高效的分页查询,同时提高了代码的可维护性和复用性。在实际应用中,应结合...

    通用分页存储过程sql

    通用分页存储过程 MSSQL通用分页存储过程

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    MSSQL分页存储过程完整示例(支持多表分页存储)

    总结起来,MSSQL的分页存储过程是一个高效且灵活的工具,能够处理复杂查询,包括多表连接和分组。通过存储过程,开发者可以方便地定制分页逻辑,以满足特定的业务需求。然而,需要注意的是,分页查询的性能可能会受...

    分页存储过程SQL

    高效的分页存储过程! MSSQL写法,分页存储过程

    MSSQL 2000 语法 分页 函数 存储过程

    以下是一些关于MSSQL 2000的语法、分页、函数和存储过程的知识点: 1. **分页查询**: - `TOP`关键字用于获取指定数量的行。例如,`SELECT TOP n * FROM table` 可以获取表中的前n行。 - 为了实现分页,可以结合`...

    最牛的asp+mssql存储过程带条件分页代码

    标题中的"最牛的asp+mssql存储过程带条件分页代码"指的是利用ASP调用MSSQL存储过程来实现带有特定条件的数据库查询,并且支持分页功能。分页是网页展示大量数据时常用的一种策略,它可以将结果集分割成多个部分,...

    一个基于MSSQL 2005 实现的存储过程Procedure 分页处理技术高级技巧例子源码

    本示例着重于在MSSQL 2005中利用存储过程实现分页处理的高级技巧。分页是数据查询中常见的一种需求,尤其是在Web应用程序中,它能够有效地管理大量数据,提高用户体验,避免一次性加载所有记录导致的性能问题。 ...

    千万条数据分页存储过程

    ### 千万条数据分页存储过程 在处理大规模数据集时,特别是在Web应用程序中,对数据进行分页展示是一项非常重要的技术。本篇将基于提供的存储过程代码,深入解析其设计思路、实现原理以及在实际场景中的应用。 ###...

    mssql 高效的分页存储过程分享

    本文将分享一个经过实践验证的高效分页存储过程,它可以帮助你优化性能,减少查询时间,提高用户体验。 这个名为`P_GridViewPager`的存储过程接受多个输入参数,包括记录总数(`@recordTotal`)、表名(`@viewName`)、...

    分页sql 存储过程 mssql

    sqlserver分页sql 存储过程 可以自行选择where order by多种条件

    Asp执行msSql(存储过程)

    本文将深入探讨如何在Asp中执行msSql的存储过程。 首先,要执行msSql的存储过程,你需要在Asp中连接到SQL Server数据库。这通常通过ADO(ActiveX Data Objects)库实现,它提供了对多种数据源的访问接口。以下是一...

    Server2005高效分页存储过程(支持多字段排序,支持Group By)

    ### Server2005高效分页存储过程详解 在数据库应用开发中,高效地处理大量数据的查询结果是一项重要的技术需求。特别是在Web应用程序中,为了提高用户体验,避免服务器因加载大量数据而产生的性能问题,分页显示...

    MSSQL 分页

    对于复杂的分页需求,可以创建存储过程,将页码和每页记录数作为参数传递,以封装分页逻辑。 6. **工具支持** 在开发工具中,如SQL Server Management Studio(SSMS),可以直接使用其内置的查询编辑器进行分页...

    MSSQL中组合查询和分页查询

    总之,MSSQL提供了多种方式来处理组合查询和分页查询,通过灵活运用SQL语法和存储过程,可以满足复杂的数据检索需求。同时,要注意安全性和性能优化,例如避免SQL注入攻击,以及使用索引来提升查询效率。

    mssql+group by 分页例子

    在标题和描述中提到的“mssql+group by 分页例子”是指在SQL Server(通常简称为mssql)中使用`GROUP BY`结合分页技术来处理大量数据的方法。这里我们将详细探讨这个主题,并给出实际的例子。 首先,`GROUP BY`子句...

    MSSQLServer数据库大量数据按月份分表、存储过程指定时间段跨表分页查询

    资源里包含SQL文档:创建数据库和存储过程.sql 生成数据.sql 测试.sql 比较完善的大量数据分表功能代码,包含...数据按照每个月创建一个数据表,通过存储过程输入参数,按照指定日期跨表查询数据,并且可以分页查询。

Global site tag (gtag.js) - Google Analytics