sql2000下 分页存储过程

2016-01-29 15:55 10 1 收藏

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

【 tulaoshi.com - SQLServer 】

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

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

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

AS

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

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

来源:http://www.tulaoshi.com/n/20160129/1496767.html

延伸阅读
其实在很多时候设计的度还是要把握的,不至于让自己陷入的怪圈中才是最重要的,因为我们还要留出时间还解决其他的很多问题,个人认为适度就可以了,留出一定的空间。也因为万能是不存在的,万物在一定的范畴之内都是合理的,出了范畴可能就没有合理的了。          分页存储过程大致有下列几种 1、&n...
标签: ASP
  if exists(select * from sysobjects where ID = object_id("up_TopicList"))    drop proc up_TopicList go create proc up_TopicList             @a_ForumID int , @a_intDays int , @a_intPageNo int , @a_intPageSize tinyint  &nbs...
标签: SQLServer
建立表: CREATE TABLE [TestTable] (  [ID] [int] IDENTITY (1, 1) NOT NULL ,  [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,  [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,  [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  [Note] [nvarchar] (2000) COLLATE C...
以下为引用的内容:SQL2000企业版本适用于WIN 2000系统,2003系统和XP的服务器版,一般装不了需要选用个人版,当然如果你在不清楚的前提下辛辛苦苦下载了企业版本却不能安装,是不是很失望呢?这里介绍一个XP专业版下安装SQL2000企业版的方法:   SQL2000企业版本适用于WIN 2000系统,2003系统和XP的服务器版,一般装不了需要选...
代码如下: /* *@curentpage 当前页 *@pagesize 每页记录数 *@TableName 表名 *@key 主键(自动排序) *@where 查询条件 1)空为 null 2)有查询条件不要带where *@order '0'表示 desc '1'是asc *@pageCount 总页数 */ create procedure Page @currentpage int,@pagesize int, @TableName varchar(30),@key varchar(30), @where...

经验教程

169

收藏

40
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部