`
yacole
  • 浏览: 240043 次
  • 性别: Icon_minigender_1
  • 来自: 浙江科技学院
社区版块
存档分类
最新评论

多表分页存储过程

Go 
阅读更多
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO



CREATE   procedure main_table_sdiv
(
@pagesize int,
@pageindex int,
@docount bit,
@TableName varchar(20),
@Col varchar(500),
@sTableName varchar(20),
@whereStr varchar(100)

)


as

declare @SqlStr    varchar(1000)


if(@docount=1)
begin
set @SqlStr = 'select count(id) from ' + @TableName
exec(@SqlStr)
end

else
begin
create table #indextable
(
[id] [int] IDENTITY (1, 1) NOT NULL ,
nid int
)
declare @PageLowerBound int
declare @PageUpperBound int

set @PageLowerBound = ( @pageindex - 1 ) * @pagesize
set @PageUpperBound = @PageLowerBound + @pagesize

set rowcount @PageUpperBound

set @SqlStr = 'insert into #indextable (nid) select id from ' +@TableName+ ' order by id desc '
--print @SqlStr
exec(@SqlStr)

set @SqlStr = 'select a.id'+ @Col +' from '+@TableName+' a,#indextable t '+@sTableName+' where a.id = t.nid '
set @SqlStr = @SqlStr + ' and t.id >'+cast(@PageLowerBound as varchar(20))+' and t.id <= '+cast(@PageUpperBound as varchar(20))+ ' ' + @whereStr + ' order by t.id '
--print @SqlStr
exec(@SqlStr)
end



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO



--多表分页查询
--DECLARE @pagesize int
--DECLARE @pageindex int
--DECLARE @docount bit
--DECLARE @TableName varchar(20)
--DECLARE @Col varchar(500)
--DECLARE @sTableName varchar(20)
--DECLARE @whereStr varchar(100)

--set @pagesize = 25
--set @pageindex = 4
--set @docount = 0
--set @TableName = 'Firstunion'   主表
--set @Col = ',a.sp,a.userindexid,a.Reguserid,unionuser.id,unionuser.nickname'
--set @sTableName = ',unionuser'  从表
--set @whereStr = ' and a.userindexid = unionuser.id'
--EXEC [main_table_sdiv] @pagesize, @pageindex, @docount, @TableName, @Col, @sTableName, @whereStr


--set @pagesize = 25
--set @pageindex = 4
--set @docount = 0
--set @TableName = 'Firstunion'
--set @Col = ',a.sp,a.userindexid,a.Reguserid,u.id,u.nickname'
--set @sTableName = ',unionuser u'
--set @whereStr = ' and a.userindexid = u.id'
--EXEC [main_table_sdiv] @pagesize, @pageindex, @docount, @TableName, @Col, @sTableName, @whereStr


--单表分页查询
--set @pagesize = 25
--set @pageindex = 3
--set @docount = 0
--set @TableName = 'Firstunion'
--set @Col = ',a.sp,a.userindexid,a.Reguserid'
--set @sTableName = ''
--set @whereStr = ''
--EXEC [main_table_sdiv] @pagesize, @pageindex, @docount, @TableName, @Col, @sTableName, @whereStr
分享到:
评论

相关推荐

    sql多表分页存储过程

    ### SQL多表分页存储过程解析 #### 标题与描述概述 该存储过程主要针对SQL Server 2005/2000环境下的多表分页查询进行了实现,并且已在SQL环境下测试通过。其核心功能是为用户提供一种灵活且高效的多表分页查询...

    多表分页的存储过程【适合于各种数据库】

    多表分页的存储过程 多表分页的存储过程【适合于各种数据库】

    高效分页存储过程 高效分页存储过程

    高效分页存储过程的实现对于优化数据库性能至关重要。本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数...

    分页存储过程 分页存储过程 分页存储过程

    分页存储过程 分页存储过程 分页存储过程 sql代码

    sql Server 通用分页存储过程

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

    sql 分页存储过程

    在给定的文件列表中,"多表分页存储过程-O.sql"可能包含了涉及多个表的分页查询存储过程。这种情况下,可能需要联接多个表并处理分页,这需要考虑到表之间的关联和性能优化。而"OmegaTestDB-O.sql"可能是测试数据库...

    oracle分页存储过程

    oracle分页存储过程,oracle分页存储过程

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

    本篇文章将深入探讨MySQL中的分页存储过程及其代码调用方法。 首先,理解分页的基本概念。在网页或应用程序中,我们通常会看到“上一页”、“下一页”这样的导航,这就是分页的表现形式。分页查询通过设置每页显示...

    分页存储过程示例系统

    在IT领域,分页存储过程是数据库管理中的一个重要概念,特别是在构建大规模的Web应用程序时,如新闻系统。分页能够有效地提高用户体验,因为用户可以逐步加载数据,而不是一次性加载所有内容,这降低了服务器的负担...

    最新的SQl高效分页存储过程

    【SQL高效分页存储过程详解】 在数据库管理系统中,分页查询是常用的功能,它能够帮助用户有效地浏览大型数据集,而不会一次性加载过多数据导致性能下降或内存消耗过大。SQL Server 2000和SQL Server 2005中的高效...

    万能分页存储过程

    ### 万能分页存储过程知识点详解 #### 一、概述 在数据库操作中,分页查询是一项常用且重要的技术,特别是在数据量较大的场景下,能够显著提高用户体验和系统性能。本文将详细介绍一个名为“万能分页存储过程”的...

    通用分页存储过程(支持多表关联)

    效率极高的通用分页存储过程,支持夺表关联。

    MYSQL分页存储过程

    本文将深入解析MySQL中的分页存储过程,通过实例代码讲解其工作原理与实现步骤。 ### MySQL分页存储过程概述 分页存储过程是一种在数据库层面上实现数据分页的技术。相比应用程序级别的分页,它能更高效地处理数据...

    c#调用分页存储过程

    "C#调用分页存储过程"是一个常见的技术实践,它结合了C#编程语言和SQL Server的存储过程来高效地获取数据库中的分页数据。这种方法可以有效地减少网络传输的数据量,提高用户界面的响应速度,尤其是在数据量达到百万...

    高效分页存储过程高效分页存储过程高效分页存储过程

    本篇将详细解释如何创建一个高效的分页存储过程,以及其中涉及的关键技术点。 首先,我们来看创建分页存储过程的基本结构。在给出的示例中,创建了一个名为`pagination`的存储过程,它接受多个参数,如表名、需要...

    通用分页存储过程

    ### 通用分页存储过程知识点解析 #### 一、存储过程概述 在数据库管理系统中,存储过程是一种预先编译并存储在数据库中的SQL程序。它能够接收参数,并根据这些参数执行复杂的逻辑操作,如数据查询、更新等。通过...

    千万数量级分页存储过程,可支持多表查询,任意排序

    因此,设计一种能够支持多表查询和任意排序功能的分页存储过程变得尤为重要。 ### 二、千万数量级分页存储过程的关键技术 #### 1. 多表查询支持 - **定义**:多表查询是指在一个SQL语句中同时查询多个表的数据。 -...

    Oracle 分页存储过程 终极版

    为了解决这个问题,高效的分页存储过程会结合`ROW_NUMBER()`窗口函数或者`RANK()`、`DENSE_RANK()`等,这些函数可以在查询过程中直接确定每行的顺序号,从而避免了全表扫描。此外,通过在`WHERE`子句中加入`ROWNUM`...

    通用Mysql分页存储过程

    通用Mysql分页存储过程,支持多表查询。

Global site tag (gtag.js) - Google Analytics