RSS
热门关键字:  数据挖掘  数据仓库  商业智能  搜索引擎  人工智能

sql2000下 分页存储过程

来源: 作者: 时间:2007-01-27 点击:

SET QUOTED_IDENTIFIER OFF
GO
SET 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 int
Declare @end int 数据挖掘研究院

set @end = @countPerPage * @toPage
set @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 "+@tmpTable
EXEC (@sqlStr) 数据挖掘研究院


END 数据挖掘研究院


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
http://www.cnblogs.com/freeliver54/archive/2006/12/31/608858.html

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?