您现在的位置是:网站首页> 编程资料编程资料
sql2005 存储过程分页代码_mssql2005_
2023-05-27
482人已围观
简介 sql2005 存储过程分页代码_mssql2005_
复制代码 代码如下:
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 number>0
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 行受影响)
您可能感兴趣的文章:
相关内容
- SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)_mssql2005_
- SQLServer2005 XML数据操作代码_mssql2005_
- SQL2005 存储过程解密方法_mssql2005_
- SQL2005的维护计划无法删除的解决方法_mssql2005_
- 分页存储过程(一)使用sql2005的新函数构造分页存储过程_mssql2005_
- sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)_mssql2005_
- sqlserver FOR XML PATH 语句的应用_mssql2005_
- SqlServer 2005/2008数据库被标记为“可疑”的解决办法_mssql2005_
- SQL2005 高效分页sql语句_mssql2005_
- 关于SQLServer2005的学习笔记 XML的处理_mssql2005_
