您的位置:首页技术文章
文章详情页

sql2000下 分页存储过程

【字号: 日期:2023-11-01 10:19:44浏览:44作者:猪猪

SET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO--名称:分页存储过程--使用示例 EXEC sp_PageIndex '*',' FROM StuSources ',2,10--注意 --目前还没有对输入的参数进行严格的验证--默认为输入都是合法有效的

ALTER; PROC sp_PageIndex@sqlSelect varchar(800) --SELECT 后面 FROM 前面 的 字段 不用包含SELECT,@sqlFrom varchar(800) --FROM 后面 的 字段 包含FROM,@countPerPage int -- 每页数据行数,@toPage int --要转到的页码

AS

BEGIN

-- 根据每页数据行数 和 要转到的页码 得到 数据起止点Declare @start intDeclare @end int

set @end = @countPerPage * @toPageset @start = @countPerPage * (@toPage - 1) + 1

-- 临时表名称 可随机命名Declare @tmpTable varchar(10)SET @tmpTable ='#tmp'

Declare @sqlStr varchar(800)-- 创建数据源到临时表SELECT @sqlStr = 'SELECT Identity(int,1,1) AS RowIndex,'SELECT @sqlStr = @sqlStr + rtrim(@sqlSelect) + ' INTO; '+ @tmpTable SELECT @sqlStr = @sqlStr + rtrim(@sqlFrom) -- 查询临时表 得到所需要的数据SELECT @sqlStr = @sqlStr + ' '+'SELECT '+ rtrim(@sqlSelect) +' FROM ' + @tmpTable SELECT @sqlStr = @sqlStr + ' WHERE; RowIndex BETWEEN ' + Convert(char,@start) + ' AND ' + Convert(char,@end)-- 删除临时表SELECT @sqlStr = @sqlStr + ' '+'DROP TABLE '+@tmpTableEXEC (@sqlStr)

END

GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOhttp://www.cnblogs.com/freeliver54/archive/2006/12/31/608858.html

标签: SQL2000 数据库