--调用方法: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数据库中轻松实现高效的分页查询,同时提高了代码的可维护性和复用性。在实际应用中,应结合...
根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...
通用分页存储过程 MSSQL通用分页存储过程
总结起来,MSSQL的分页存储过程是一个高效且灵活的工具,能够处理复杂查询,包括多表连接和分组。通过存储过程,开发者可以方便地定制分页逻辑,以满足特定的业务需求。然而,需要注意的是,分页查询的性能可能会受...
高效的分页存储过程! MSSQL写法,分页存储过程
以下是一些关于MSSQL 2000的语法、分页、函数和存储过程的知识点: 1. **分页查询**: - `TOP`关键字用于获取指定数量的行。例如,`SELECT TOP n * FROM table` 可以获取表中的前n行。 - 为了实现分页,可以结合`...
标题中的"最牛的asp+mssql存储过程带条件分页代码"指的是利用ASP调用MSSQL存储过程来实现带有特定条件的数据库查询,并且支持分页功能。分页是网页展示大量数据时常用的一种策略,它可以将结果集分割成多个部分,...
本示例着重于在MSSQL 2005中利用存储过程实现分页处理的高级技巧。分页是数据查询中常见的一种需求,尤其是在Web应用程序中,它能够有效地管理大量数据,提高用户体验,避免一次性加载所有记录导致的性能问题。 ...
### 千万条数据分页存储过程 在处理大规模数据集时,特别是在Web应用程序中,对数据进行分页展示是一项非常重要的技术。本篇将基于提供的存储过程代码,深入解析其设计思路、实现原理以及在实际场景中的应用。 ###...
本文将分享一个经过实践验证的高效分页存储过程,它可以帮助你优化性能,减少查询时间,提高用户体验。 这个名为`P_GridViewPager`的存储过程接受多个输入参数,包括记录总数(`@recordTotal`)、表名(`@viewName`)、...
sqlserver分页sql 存储过程 可以自行选择where order by多种条件
本文将深入探讨如何在Asp中执行msSql的存储过程。 首先,要执行msSql的存储过程,你需要在Asp中连接到SQL Server数据库。这通常通过ADO(ActiveX Data Objects)库实现,它提供了对多种数据源的访问接口。以下是一...
### Server2005高效分页存储过程详解 在数据库应用开发中,高效地处理大量数据的查询结果是一项重要的技术需求。特别是在Web应用程序中,为了提高用户体验,避免服务器因加载大量数据而产生的性能问题,分页显示...
对于复杂的分页需求,可以创建存储过程,将页码和每页记录数作为参数传递,以封装分页逻辑。 6. **工具支持** 在开发工具中,如SQL Server Management Studio(SSMS),可以直接使用其内置的查询编辑器进行分页...
总之,MSSQL提供了多种方式来处理组合查询和分页查询,通过灵活运用SQL语法和存储过程,可以满足复杂的数据检索需求。同时,要注意安全性和性能优化,例如避免SQL注入攻击,以及使用索引来提升查询效率。
在标题和描述中提到的“mssql+group by 分页例子”是指在SQL Server(通常简称为mssql)中使用`GROUP BY`结合分页技术来处理大量数据的方法。这里我们将详细探讨这个主题,并给出实际的例子。 首先,`GROUP BY`子句...
资源里包含SQL文档:创建数据库和存储过程.sql 生成数据.sql 测试.sql 比较完善的大量数据分表功能代码,包含...数据按照每个月创建一个数据表,通过存储过程输入参数,按照指定日期跨表查询数据,并且可以分页查询。