sql2005 存储过程分页代码

2016-02-19 10:19 0 1 收藏

下面图老师小编跟大家分享一个简单易学的sql2005 存储过程分页代码教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

代码如下:

create database Test
on primary ( name='Test_Data.mdf',
filename='D:我的资料sql备份Test_Data.mdf'
)
log on
(
name='Test_Data.ldf',
filename='D:我的资料sql备份Test_Data.ldf'
)

if object_id('tb') is not null drop table tb
create table tb
(
Col int
)
insert into tb select top 50 number from master..spt_values where type='P' and number0

create proc SplitPage
(
@TableName nvarchar(50),
@PageSize int,--每页显示的数量
@CurrentPage int,--当前第几页
@PageCol nvarchar(50),--排序字段
@OrderNo nvarchar(50)--排序方式(DESC,ASC)
)
as
/*
测试用的
declare @PageCol nvarchar(50)
declare @TableName nvarchar(50)
declare @OrderNo nvarchar(50)
declare @PageSize int
declare @CurrentPage int
set @PageCol='Col'
set @TableName='tb'
set @OrderNo='DESC'
set @PageSize=10
set @CurrentPage=4
*/
declare @sql nvarchar(1000)
set @sql=''
set @sql='
;with hgo as
(
select *,row_number() over(
order by '+@PageCol+' '+@OrderNo+') rank
from '+@TableName+'
)'
set @sql=@sql+'select Col from hgo where rank between '+ltrim((@CurrentPage-1)*@PageSize+1)+' and '+ltrim(@CurrentPage*@PageSize)
--print @sql
exec (@sql)

exec SplitPage 'tb',10,1,'Col','DESC'

Col
-----------
50
49
48
47
46
45
44
43
42
41

(10 行受影响)

exec SplitPage 'tb',10,3,'Col','DESC'
Col
-----------
30
29
28
27
26
25
24
23
22
21

(10 行受影响)

来源:http://www.tulaoshi.com/n/20160219/1594183.html

延伸阅读
标签: SQLServer
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 ,@sqlF...
@StartIndex为当前页起始序号,@EndIndex为当前页结束记录序号,可以直接作为参数输入,也可以通过输入PageSize和PageIndex计算得出 代码如下: select * from ( select *,row_number() over(order by OrderColumn) as orderindex from TableName ) as a where a.orderindex between @StartIndex and @EndIndex
标签: 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...
标签: 电脑入门
Sql2005版本:Sql2005开发版,两张CD的那种 操作系统:Window 2003 Server 假设您的电脑已安装了Sql2000,下面开始安装Sql2005。 一、运行光盘1 跳过 准备 步骤,直接进行服务器组件、工具、联机丛书和示例的安装。 接着是许可协议,当然选择我接受许可条款和条件,不选择就没得装了。 然后是sqlserver进行安装前的支持组件安装、扫描...

经验教程

948

收藏

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