`

sqlserver 2000 高效分页存储过程

Go 
阅读更多
代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->
alter PROCEDURE Pages
@TableNames VARCHAR(200),     --表名,可以是多个表,但不能用别名
@PrimaryKey VARCHAR(100),     --主键,可以为空,但@Order为空时该值不能为空
@Fields     VARCHAR(800),         --要取出的字段,可以是多个表的字段,可以为空,为空表示select *
@PageSize INT,             --每页记录数
@CurrentPage INT,         --当前页,0表示第1页
@Filter VARCHAR(200= '',     --条件,可以为空,不用填 where
@Order VARCHAR(200= '' ,    --排序,可以为空,为空默认按主键升序排列,不用填 order by
@ResultCount varchar(24)
AS
BEGIN
declare @topRow varchar(12)
declare @tempPageSize varchar(12)
if(len(@Order)>0)
begin
set @Order=' order by '+@Order
end
else
begin
set @Order=''
end
if (len(@Filter)<1)
begin
set @Filter=' 1=1'
end
if(@CurrentPage-1<=0)
set @CurrentPage=0
if(len(rtrim(ltrim(@ResultCount)))>0)
set @ResultCount='set rowcount '+ltrim(rtrim(@ResultCount))
set @topRow= rtrim(ltrim(str(@PageSize*(@CurrentPage-1))))
set @tempPageSize= rtrim(ltrim(str(@PageSize)))
exec('
declare @temptable table(rownum int identity(1,1),Gid varchar(36))
'+'
declare @datatable table(Gid varchar(36))
'+'
declare @date datetime
'+'
set @date=getdate()
'+'
SET NOCOUNT ON 
'+'
'+@ResultCount+'
insert into @temptable(Gid) select 
'+@PrimaryKey+' from '+@TableNames+' where  '+@Filter+@Order+'
set rowcount 
'+@tempPageSize+'
insert into @datatable(Gid) select  Gid from @temptable where rownum>
'+@topRow+'
select 
'+@Fields+' from '+@TableNames+' where '+@Filter+' and '+@PrimaryKey+' in (select  Gid from @datatable)'+@Order+'
set rowcount 0
'+'
print(datediff(ms,@date,getdate()))
')
--declare @datatable table(Gid varchar(12))'+'
--
-insert into @datatable(Gid) select  Gid from @temptable where rownum>'+@topRow+'
--
set rowcount '+@tempPageSize+'
--
+'set rowcount 0'
--
print('insert into @temptable(Gid) select '+@PrimaryKey+' from '+@TableNames+' where  '+@Filter+@Order)
--
-print('select '+@Fields+' from '+@TableNames+' where '+@Filter+' and '+@PrimaryKey+' in(select Gid from @datatable) '+@Order) 
end
GO

 

分享到:
评论

相关推荐

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

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

    SQL Server 2000下的通用分页存储过程

    SQL Server 2000下的通用分页存储过程.sql

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

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

    SqlServer高效万能分页存储过程

    使用系统游标分页,数据越大越能显示高效

    sql分页 sqlserver中存储过程分页

    ### SQL Server 存储过程实现分页查询 #### 背景介绍 在数据库操作中,分页查询是非常常见的需求之一。特别是在数据量较大的场景下,分页不仅可以提高查询效率,还能改善用户体验。SQL Server 提供了多种方式进行...

    sql server 2000 分页存储过程,DB2分页存储过程,db2自动生成流水号存储过程

    首先,让我们看看SQL Server 2000的分页存储过程。在SQL Server 2000中,由于没有内置的OFFSET和FETCH NEXT功能,我们通常会使用`TOP`和`ORDER BY`结合`ROW_NUMBER()`函数来实现分页。以下是一个简单的例子: ```...

    ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例

    "ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例" 本文主要介绍了如何使用ASP和SQL Server实现带条件查询的分页存储过程,并提供了实例代码和调用示例。该实例已经在IIS+ASP+SQL Server环境中进行了调试,...

    SQL Server 2000 通用分页过程

    本文将深入探讨一个针对 SQL Server 2000 的通用分页存储过程。该存储过程采用 `TOP + MAX(ID)` 的方法实现分页功能,并强调了关键字(`Keyword`)选择对于性能的影响。 #### 存储过程设计 此存储过程名为 `p_...

    sqlserver 分页存储过程

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

    SQL Server2005通用分页存储过程.rar

    本压缩包"SQL Server 2005通用分页存储过程.rar"包含了一个名为"SQL Server 2005通用分页存储过程.mht"的文件,很可能是详细讲解如何创建和使用分页存储过程的文档。 首先,我们要理解什么是存储过程。存储过程是预...

    最简单的SQL Server数据库存储过程分页

    本文介绍一种简单且高效的SQL Server存储过程实现分页的方法,这种方法仅需提供SQL语句、每页的记录数以及当前页数即可快速完成分页操作。 #### SQL Server存储过程分页原理 在SQL Server中,通过存储过程实现分页...

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

    总结,SQL Server的分页存储过程可以帮助我们高效地处理分页查询。正确地设计和调用这些存储过程,可以提升应用的性能并提供更好的用户体验。在实际开发中,根据项目的具体需求,可以对存储过程进行适当的修改和扩展...

    sqlserver写的分页存储过程

    通过这样的方式,你可以轻松地在Java或.NET应用程序中调用SQL Server的分页存储过程,实现高效且灵活的分页查询。这不仅可以提高性能,还可以减少网络传输的数据量,提升用户体验。在实际项目中,可能还需要考虑其他...

    SQL Server 的通用分页显示存储过程

    一种改进后的分页存储过程采用了SQL Server中的表变量技术,示例代码如下: ```sql CREATE procedure pagination1(@pagesize int, -- 页面大小,如每页存储20条记录 @pageindex int) -- 当前页码 as set nocount ...

    通用的SQL server分页存储过程

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

    千万级数据分页查询存储过程SQLServer

    本文将深入探讨如何利用SQL Server的存储过程实现高效的大数据分页查询。 首先,理解分页查询的基本概念。分页查询是指从海量数据中按指定的页码和每页大小获取数据,通常用于网页展示或报表生成。在SQL Server中,...

    SQL Server 2005分页显示存储过程

    ### SQL Server 2005 分页显示存储过程 #### 背景介绍 在数据库应用开发中,分页查询是非常常见的需求之一。对于大型数据集来说,如果一次性加载所有数据到前端展示,不仅会增加服务器负担,还会影响用户体验。因此...

    Row_number 分页存储过程

    在SQL Server中,`Row_number()` 是一个非常重要的...总的来说,`Row_number()` 函数结合存储过程是SQL Server中实现高效数据分页的有效手段。通过理解这些概念并合理应用,你可以更好地管理和展示大型数据库中的数据。

    SQL高效存储过程分页

    当我们谈论“SQL高效存储过程分页”时,我们主要关注如何利用存储过程来实现数据库查询的分页效果,这在大数据量的场景下尤为重要,因为直接查询所有数据可能会导致性能下降,甚至阻塞数据库服务。 分页是Web应用...

Global site tag (gtag.js) - Google Analytics