dnt分页存储过程解析

dnt分页存储过程解析

ID:35527729

大小:64.26 KB

页数:12页

时间:2019-03-25

dnt分页存储过程解析_第1页
dnt分页存储过程解析_第2页
dnt分页存储过程解析_第3页
dnt分页存储过程解析_第4页
dnt分页存储过程解析_第5页
资源描述:

《dnt分页存储过程解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DNT的几个分页存储过程解析在DNT安装时会创建一些存储过程,用于完成DNT的功能。这些存储过程位于、upload_filesinstallsqlscriptsqlserver文件夹中的setup2.2-2005.sql文件中。其屮的分页存储过程如下:我认识存储过程这个东西不久,仔细看了下,注释出来.下边列举的4个分页存储过程,写法风格各不相同.在算法上只有两种.一个使用了ROW_NUMBER()OVER(ORDERBY[aid]DESC)ASROWID这个函数.另一个手动计算页码,将该页的所有数据以DESC的方式选到一个临时表中.再在这个表中搜索Top数据.然后返回

2、.从风格上讲,前两个使用了很多参数来组织语句,代码美观大方.后两个先组织了Sql字符串,加入搜索条件后才使用EXEC语句执行.代码乱七八糟的,不是很好看,但也实现了功能.(1)dnt_getfavoriteslist获取用户收藏的存储过程这个存储过程用于查看用户收藏是的分页显示•返回一个包含帖子主题的表供前台调用CREATEPROCEDURE[dnt_getfavoriteslist]--分页获取收藏主题表QuidINT,--用户:ED@pagesizeINT,--页大小QpageindexINT―第几页AS—SELECT[f].[uid],[f].[tid],[topic

3、s].[titie],[topics].[poster],[topics].[postdatetime],[topics].[replies],[topics].[views],[topics].[posterid]FROM[dnt_favorites][f]LEFTJOIN[dnt_topics][topics]ON[f].[tid]=[topics].[tid]WHERE[f].[typeid]=0AND[f].[uid]=@uidIFQpageindex=1--处理第一页BEGINSELECTTOP(@pagesize)--因为是第一页,选择出前@pagesize就是

4、所需要的内容[uid]/[tid],[title]/[poster],[postdatetime],[replies],[views],[posterid]FROM(SELECT[f].[uid],--这个Select用于选出用八用八所有的收藏[f]代表表[dnt_favorites]»[topics]代表[dnt_topics]--两个表连接起来查询出用户收藏的所有主题[f].[tid],[topics]•[title]/[topics]•[poster],[topics]•[postdatetime]z[topics]•[replies].[topics]•[views

5、],[topics]•[posterid]FROM[dnt_favorites][f]―此处设置f代表[dnt_favorites]LEFTJOIN[dnt_topics][topics]ON[f]・[tid]=[topics]・[tid]WHERE[f].[typeid]=0AND[f]•[uid]=@uid)favorites--此处的favorites相当于一个表。From语句后边的SELECT语句选择出來的内容存放着这个表中ORDERBY[tid]DESCENDELSEBEGIN--gpageindex不等于1,处理其他页SELECTTOP(Qpagesize)--

6、不是第一页,需要对选择出來内容的范圉加以约束。Where之后未约束FROMWHERE[uid]/[tid],[title]z[poster],[postdatetime]A[replies],[views]/[posterid](SELECT[f].[uid],[f]•[tid],[topics].[title]/[topics]•[poster],[topics]•[posz[topics]•[replies],[topics]•[views],[topics]•[posterid]FROM[dnt_favorites][f]LEFTJOIN[dnt_topics][to

7、pics]ON[f].[tid]=[topics]・[tid]WHERE[f]・[typeid]=0AND[f].[uid]=@uid)fl[tid]<(SELECTMIN([tid])--根据页大小和页序号设置TID的范围FROM(SELECTTOP((@pageindex-1)*Qpagesize)[tid]查询FROM(SELECT[f].[uid],--这里跟处理第一页一样,选择出所有收藏的内容作为一个表,供[f].[tid],[topics]•[titie],[topics]•[poster],[topi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。