`
liuhd2010
  • 浏览: 148016 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

SQL Server分页存储过程

 
阅读更多

SQL Sever分页存储过程:

-------------------------- 实现分页查询的存储过程 ---------------------------
CREATE PROCEDURE paggingResultProc
---- 获得某一页的数据 ---- 
-- 当前页页码 (即Top currPage) 
@currPage int = 1,
-- 需要得到的字段 (即 column1,column2,......) 
@showColumn varchar(2000) = '*',
-- 需要查看的表名 (即 from table_name)
@tabName varchar(2000),
-- 查询条件 (即 where condition......) 不用加where关键字 
@strCondition varchar(2000) = '',
排序的字段名 (即 order by column asc/desc) 
@ascColumn varchar(100) = '',
-- 排序的类型 (0为升序,1为降序) 
@bitOrderType bit = 0,
-- 主键名称 
@pkColumn varchar(50) = '',
--分页大小 
@pageSize int = 20

AS 
BEGIN -- 存储过程开始 
--该存储过程需要用到的几个变量-- 
-- 该存储过程最后执行的语句 
DECLARE @strTemp varchar(1000)
DECLARE @strSql varchar(4000)  

-- 排序类型语句 (order by column asc或者order by column desc)
DECLARE @strOrderType varchar(1000)  

BEGIN 
-- bitOrderType=1即执行降序 
IF @bitOrderType = 1 
	BEGIN 
		SET @strOrderType = ' ORDER BY '+@ascColumn+' DESC' 
		SET @strTemp = '<(SELECT min' 
	END 
ELSE 
	BEGIN 
		SET @strOrderType = ' ORDER BY '+@ascColumn+' ASC' 
		SET @strTemp = '>(SELECT max' 
	END 

IF @currPage = 1  -- 如果是第一页 
	BEGIN 
	IF @strCondition != '' 
		SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn +' FROM '+@tabName+' WHERE '+@strCondition+@strOrderType 
	ELSE 
		SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+  @showColumn+' FROM '+@tabName+@strOrderType
	END 
ELSE -- 其他页 
	BEGIN 
	IF @strCondition !='' 
	SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+ ' FROM '+@tabName+' WHERE '+@strCondition+' AND '+ 
	@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP  '+STR((@currPage-1)*@pageSize)+' '+@pkColumn+' FROM  
	'+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType
	ELSE 
	SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn +' FROM '+@tabName+' WHERE '+@pkColumn+@strTemp+'('+@pkColumn+')' 
	+' FROM (SELECT TOP '+STR((@currPage-1)*@pageSize)+' '+@pkColumn+ ' FROM '+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType 
	END 
END 
EXEC (@strSql) 
END -- 存储过程结束

 

--------------------------- 查询表的记录数存储过程 ------------------------------
CREATE PROC rowsCountProc
@tabName varchar(200), --需要查询的表名 
@colName varchar(200)='*', --需要查询的列名
@condition varchar(200)='' --查询条件 

AS 
BEGIN 
DECLARE @strSql varchar(255)
IF @condition = '' 
	SET @strSql='select count('+@colName+') from '+@tabName
ELSE 
	SET @strSql='select count('+@colName+') from '+@tabName
+' where '+@condition 
EXEC (@strSql)
END 

 

分享到:
评论

相关推荐

    sqlserver 分页存储过程

    SQL Server 分页存储过程是一种在数据库中实现高效数据分页查询的方法。在大型数据集的展示中,分页是必不可少的,因为它允许用户逐步浏览数据,而不是一次性加载所有记录,从而提高用户体验并减少服务器负载。以下...

    sql Server 通用分页存储过程

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

    SQLserver 分页存储过程

    数据库存储过程,可直接使用,可直接传参数,可根据自己额需要进行修改~简单、快捷

    SQL SERVER 分页存储过程

    ### SQL Server 分页存储过程详解 #### 一、概述 分页是数据库操作中的常见需求之一,尤其是在构建大型Web应用程序时。SQL Server 提供了多种实现分页的方法,包括使用临时表、变量、子查询等技术。其中,利用存储...

    标准SQLServer分页存储过程

    ### 标准SQL Server分页存储过程:深入解析与应用 在处理大量数据时,分页技术是提高数据展示效率和用户体验的关键。SQL Server提供的存储过程是实现分页功能的有效方式之一。本文将深入探讨微软C# .NET中的宠物...

    SqlServer 分页存储过程

    综上所述,`SqlServer 分页存储过程`涉及到如何在SQL Server中有效地执行分页查询,这通常通过存储过程来实现,并可能利用`get_no.sql`来获取序列号或特定条件下的最大值。通过理解这些概念和技术,可以构建高效且...

    SQLSERVER 分页存储过程

    通用 SQLSERVER 分页存储过程 代码超级简单实用

    通用的SQL server分页存储过程

    标题提到的“通用的SQL server分页存储过程”提供了一种解决方案,可以避免重复编写存储过程,只需调整参数即可满足不同分页需求。 分页存储过程的核心思想是利用`OFFSET`和`FETCH NEXT`这两个SQL Server 2012及更...

    SqlServer 分页存储过程以及代码调用

    二、SQL Server的分页存储过程 在SQL Server中,可以使用`OFFSET`和`FETCH NEXT`语句实现分页。下面是一个简单的分页存储过程示例: ```sql CREATE PROCEDURE [dbo].[usp_GetPagedData] @TableName NVARCHAR(128)...

    sql server分页存储过程演示

    sql server,分页存储,过程,演示 sql server,分页存储,过程,演示 sql server,分页存储,过程,演示 sql server,分页存储,过程,演示 sql server,分页存储,过程,演示 sql server,分页存储,过程,演示 ...

    sqlserver分页存储过程+gridview实例+通用方法(sqlserverr通用)

    首先,我们来理解SQL Server分页存储过程的工作原理。分页通常涉及到两个关键参数:当前页号(@CurrentPage)和每页记录数(@PageSize)。存储过程通过计算出开始和结束的记录索引,然后使用`OFFSET-FETCH`或`TOP-N`...

    sqlserver分页存储过程

    sqlserver数据库数据分页功能,介绍了如何在sqlserver数据库汇总用存储过程进行数据分页

    Sql server 分页存储过程的性能对比

    在"分页存储过程效率对比.doc"文档中,可能详细分析了每种方法的执行计划、资源消耗、响应时间等指标,通过实验数据来展示不同方法在实际应用中的性能差异。对比这些数据可以帮助我们理解在特定数据库结构和工作负载...

    SQLServer分页存储过程(主键为GUID)

    SQLServer分页存储过程通常有多个版本,但是效率上有高有低,经过测试排名为: 版本1:select max 版本2:row_number 版本3:not in 版本4:临时表 版本5:中间变量 如果主键为int,请使用版本1 如果主键为guid,...

    Sql Server 通用分页存储过程(适用与 BootStrap Table)

    通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.

    sql的存储过程-简单分页

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

Global site tag (gtag.js) - Google Analytics