帮忙分析下这个存储过程

csts_008 2011-03-30 07:46:54
一位网友的存储过程如下:
ALTER proc [dbo].[pxryInfo_AllowPageing]
@pageIndex int,
@pageEnd int
as
begin
with temp as(
select Row_Number() over(order by p.ID desc) as row,* FROM [CS_pxryInfo] as p)
select * from temp where row between @pageIndex and @pageEnd
end

问题一:“@pageIndex”和"@pageEnd",不是不是表示每页的第一行记录和最后一行记录?

问题二:“with temp as( select Row_Number() over(order by p.ID desc) as row,* FROM [CS_pxryInfo] as p) ”一句是不是表示“创建一个叫做Temp的,根据[CS_pxryInfo]表按照自己的ID进行倒排序,得到的临时表”?

问题三:“select * from temp where row between @pageIndex and @pageEnd”表示查询第“@pageIndex”和“@pageEnd”之间的记录?

可是这样穿不起来啊,还是理解不了它的功能?那位大侠给解释下,感激不尽。。。
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
starrysky_net 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 csts_008 的回复:]
一位网友的存储过程如下:
ALTER proc [dbo].[pxryInfo_AllowPageing]
@pageIndex int,
@pageEnd int
as
begin
with temp as(
select Row_Number() over(order by p.ID desc) as row,* FROM [CS_pxryInfo] as p)
selec……
[/Quote]

对对对,我来帮你穿起来

这个就是把指定表按照他的ID进行倒排序得到相应的编号,同时生成一个临时表,然后根据“PageIndex”和"PageEnd"返回记录集,返回的记录集的条数是它们的差,当进行翻页时他们同时加上或是减去页得大小,明白了吗?
winformwcf_006 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxr0323 的回复:]

Row_Number()随机

你理解的对

这个就是返回传入的两个参数之间的随即数据

点击第二页的时候 返回第一页和第二页之间的数据

来作为第二页显示的数据。。

但是这个貌似不太好 看看aspnetpager里的分页存储过程。
[/Quote]

是不是点击下一页那么“@pageIndex”和“@pageEnd”都得加上“每页的记录数”,也就是每页的大小。前一页就要减去每页的大小???
cpp2017 2011-03-30
  • 打赏
  • 举报
回复
1 是的,是个索引。
2  是的
3. 是

为什么串不起来?就是分页用的。

子夜__ 2011-03-30
  • 打赏
  • 举报
回复
Row_Number()随机

你理解的对

这个就是返回传入的两个参数之间的随即数据

点击第二页的时候 返回第一页和第二页之间的数据

来作为第二页显示的数据。。

但是这个貌似不太好 看看aspnetpager里的分页存储过程。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧