sql2000下 分页存储过程

红尘醉流年

红尘醉流年

2016-01-29 15:55

sql2000下 分页存储过程,sql2000下 分页存储过程

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)


-- 临时表名称 可随机命名
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

展开更多 50%)
分享

猜你喜欢

sql2000下 分页存储过程

SQLServer
sql2000下 分页存储过程

sql 存储过程分页

Web开发
sql 存储过程分页

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL server 2000存储过程

SQLServer
SQL server 2000存储过程

SQL Server 存储过程的分页

ASP
SQL Server 存储过程的分页

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一条SQL语句搞定Sql2000 分页

编程语言 网络编程
一条SQL语句搞定Sql2000 分页

两个sql server 2000的通用分页存储过程

SQLServer
两个sql server 2000的通用分页存储过程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

photoshop教程:给老外换上张馨予的中国风被面子

photoshop教程:给老外换上张馨予的中国风被面子

Sql Sever数据库自动备份

Sql Sever数据库自动备份
下拉加载更多内容 ↓