一个分页存储过程代码

复制代码 代码如下:
------------------------------------
--用途:分页存储过程(对有主键的表效率极高)
--说明:
------------------------------------
ALTER PROCEDURE [UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsReCount bit = 0, -- 返回记录总数, 非0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非0 值则降序
@strWhere varchar(1000) = '' -- 查询条件(注意: 不要加where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(100) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
if @IsReCount != 0
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)

时间: 2024-10-03 16:22:39

一个分页存储过程代码的相关文章

一个分页存储过程代码_MsSql

复制代码 代码如下: ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ------------------------------------ ALTER PROCEDURE [UP_GetRecordByPage] @tblName varchar(255), -- 表名 @fldName varchar(255), -- 主键字段名 @PageSize int = 10, -- 页尺寸 @PageIndex

.NET分页存储过程代码及使用

最近需要做个论坛,其中用到了分页,如果把整表的数据都查询出来未免小题大做,而且还影响速度 ,所以百度了并私有化了一个分页存储过程,实现了调用. 好了,废话不多说,贴出代码: /**** 使用帮助 首先查询表总行数,再查询分页数据 查询行数传入参数:@doCount,@tblName 查询分页传入参数:@tblName,@PageSize,@PageIndex,@fldName *以上不带查询条件的查询 带条件的加参数:@strWhere *分页查询可以使用排序 参数:@OrderType ***

扩展性很好的一个分页存储过程分享_MsSql

这是经常用的一个分页存储过程 希望大家指点不足 复制代码 代码如下: USE [a6756475746] GO /****** Object: StoredProcedure [dbo].[tbl_order_SearchWhereAndPage] Script Date: 11/01/2011 09:37:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[tbl_order_Se

扩展性很好的一个分页存储过程分享

这是经常用的一个分页存储过程 希望大家指点不足 复制代码 代码如下: USE [a6756475746] GO /****** Object: StoredProcedure [dbo].[tbl_order_SearchWhereAndPage] Script Date: 11/01/2011 09:37:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[tbl_order_Se

两款sql 分页存储过程代码

文章收藏了两款sql 分页存储过程代码,这二款存储过程是二款高效分页存储过程代码,如果你觉得自己写的语句不够,强的话,可以利用我们现成的高效分页存储过程实例代码. create procedure pages @tablenames varchar(200), --表名,可以是多个表,但不能用别名 @primarykey varchar(100), --主键,可以为空,但@order为空时该值不能为空 @fields varchar(800), --要取出的字段,可以是多个表的字段,可以为空,为

1&gt;通用分页存储过程代码及调用

Java代码   /*****************************************************  MySQL分页存储过程  吴剑 2009-07-02    *****************************************************/   DROP PROCEDURE IF EXISTS pr_pager;   CREATE PROCEDURE pr_pager(       IN     p_table_name        V

asp又一个分页的代码例子_应用技巧

一个分页代码例子 <%''本程序文件名为:Pages.asp%> <%''包含ADO常量表文件adovbs.inc,可从"\Program Files\Common Files\System\ADO"目录下拷贝%> <!--#Include File="adovbs.inc"--> <%''*建立数据库连接,这里是Oracle8.05数据库 Set conn=Server.CreateObject("ADODB.C

sqlserver 千万数量级分页存储过程代码_MsSql

复制代码 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go Create PROCEDURE [dbo].[SP_Pagination] /**//* *************************************************************** ** 千万数量级分页存储过程 ** *************************************************************** 参

针对SQL 2000 的分页存储过程代码分享_MsSql

复制代码 代码如下: ---------------------------------------------------- --针对SQL 2000 的分页存储过程 --Time:2008-9-25 ---------------------------------------------------- ALTER PROCEDURE [dbo].[uoSp_RecordPager] --要分页显示的表名,可多表连查,但不能使用别名. --例:uo_Article LEFT JOIN uo_