欢迎光临
我们一直在努力

sql2000下 分页存储过程_数据库技巧

建站超值云服务器,限时71元/月

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)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » sql2000下 分页存储过程_数据库技巧
分享到: 更多 (0)