set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[RecvSMSLog_queryPage]
@UcNum nvarchar(20), --电话号码
@PageSize int, --每页多少条记录
@pageIndex int = 1 , --指定当前为第几页
@TotalPage int output --返回总页数
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
) 分页查询 接收信息
*/
AS
BEGIN
Begin tran -- 开始事务
declare @sql nvarchar(3000)
declare @totalRecord int --总记录数
--计算总记录数
set @sql = 'select @totalRecord = count(id) from (select * from dbo.RecvSMSLog) As tmpTable'
EXEC sp_executesql @sql,N'@totalRecord int OUTPUT',@totalRecord OUTPUT--计算总记录
--计算总页数
select @TotalPage=CEILING((@totalRecord+0.0)/@PageSize)
--处理页数超出范围情况
if @PageIndex<=0
Set @pageIndex = 1
if @pageIndex>@TotalPage
Set @pageIndex = @TotalPage
--处理开始点
Declare @StartRecord int
set @StartRecord = (@pageIndex-1)*@PageSize
if @pageIndex = 1
begin
Set @sql = 'select top ' + Convert(varchar(50),@PageSize) + ' * from dbo.RecvSMSLog '
if len('' + @UcNum) > 0
begin
Set @sql = @sql + ' where UcNum = ''' + @UcNum + ''''
end
Set @sql = @sql + ' order by id desc'
end
else
begin
Set @sql = 'select top ' + Convert(varchar(50),@PageSize) + ' * from RecvSMSLog WHERE (ID < (SELECT MIN(ID) AS Expr1 FROM (SELECT TOP ' + Convert(varchar(50),@StartRecord) + ' ID FROM RecvSMSLog AS RecvSMSLog_1 ORDER BY ID desc) AS derivedtbl_1))'
if len('' + @UcNum) > 0
begin
Set @sql = @sql + ' and (UcNum = ''' + @UcNum + ''')'
end
Set @sql = @sql + ' order by id desc'
end
print @sql
Exec(@sql)
---------------------------------------------------
If @@Error <> 0
Begin
RollBack Tran
Return -1
End
Else
Begin
Commit Tran
---返回记录总数
Return @totalRecord
End
END
分享到:
相关推荐
sqlserver2005存储过程分页,可以同时获取分页结果集和分页总记录数。
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
### SQL Server 存储过程实现分页查询 #### 背景介绍 在数据库操作中,分页查询是非常常见的需求之一。特别是在数据量较大的场景下,分页不仅可以提高查询效率,还能改善用户体验。SQL Server 提供了多种方式进行...
本文介绍一种简单且高效的SQL Server存储过程实现分页的方法,这种方法仅需提供SQL语句、每页的记录数以及当前页数即可快速完成分页操作。 #### SQL Server存储过程分页原理 在SQL Server中,通过存储过程实现分页...
在VB6.0中调用SQL Server的存储过程是VB开发者经常遇到的问题,本文将详细介绍如何在VB6.0中调用SQL Server的存储过程,并对存储过程的优点和使用方法进行了详细的解释。 首先,存储过程是一种封装方法,用于重复...
asp+sqlserver2005万能分页存储过程源码 sqlserver2005源码下载,很灵活的
根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...
SQL Server 分页存储过程是一种在数据库中实现高效数据分页查询的方法。在大型数据集的展示中,分页是必不可少的,因为它允许用户逐步浏览数据,而不是一次性加载所有记录,从而提高用户体验并减少服务器负载。以下...
通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.
SQL Server 2000下的通用分页存储过程.sql
3. ASP可以用于调用SQL Server存储过程实现数据的插入、更新和查询。 4. 使用参数化的存储过程可以提高数据库的安全性和性能。 5. 使用SQL Server的存储过程可以简化数据库操作和提高开发效率。 详细知识点 知识点...
本文将详细介绍如何使用存储过程实现SQL Server的分页,并演示如何在代码中调用这些存储过程。 一、分页的基本原理 分页通常涉及到两个关键参数:每页大小(PageSize)和当前页码(CurrentPage)。通过这两个参数...
很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术
### 标准SQL Server分页存储过程:深入解析与应用 在处理大量数据时,分页技术是提高数据展示效率和用户体验的关键。SQL Server提供的存储过程是实现分页功能的有效方式之一。本文将深入探讨微软C# .NET中的宠物...
本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数:当前页码(PageNumber)和每页记录数(PageSize)。...
根据提供的ASP + SQL Server存储过程分页代码,我们可以详细探讨其中涉及的重要知识点: ### 1. 存储过程概述 存储过程是SQL Server数据库中的一种预编译的对象,它可以包含一系列SQL语句,并且可以接受参数。存储...
数据库存储过程,可直接使用,可直接传参数,可根据自己额需要进行修改~简单、快捷
本文将深入探讨如何利用SQL Server的存储过程实现高效的大数据分页查询。 首先,理解分页查询的基本概念。分页查询是指从海量数据中按指定的页码和每页大小获取数据,通常用于网页展示或报表生成。在SQL Server中,...
标题提到的“通用的SQL server分页存储过程”提供了一种解决方案,可以避免重复编写存储过程,只需调整参数即可满足不同分页需求。 分页存储过程的核心思想是利用`OFFSET`和`FETCH NEXT`这两个SQL Server 2012及更...