sqlserver分页存储过程(已通过验证)

sqlserver分页存储过程(已通过验证)

ID:34725939

大小:52.68 KB

页数:3页

时间:2019-03-10

sqlserver分页存储过程(已通过验证)_第1页
sqlserver分页存储过程(已通过验证)_第2页
sqlserver分页存储过程(已通过验证)_第3页
资源描述:

《sqlserver分页存储过程(已通过验证)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、我从别处拷贝的代码,但在条件判断的位置出问题,我改动了下上传,给大家分享!useusersgoifexists(selectnamefromsysobjectswherename='pages'andxtype='p')dropprocpagesgoCREATEPROCpages@tblNamevarchar(255),--表名@strGetFieldsvarchar(1000),--需要返回的列@fldNamevarchar(255),--排序的字段名@PageSizeint,--多少条/页@PageIndex

2、int,--页码@doCountbit,--返回记录总数,0不返回,1返回@OrderTypebit,--设置排序类型,0升序,1降序@strWherevarchar(1500)--查询条件(注意:不要加where)ASdeclare@strSQLvarchar(5000)--主语句declare@strTmpvarchar(150)--临时变量declare@strOrdervarchar(400)--排序类型--如果@doCount传递过来的不是0,就执行总数统计。if@doCount!=0begin--查询

3、条件为空set@strSQL='selectcount(*)asTotalfrom'+@tblName--查询条件不为空if@strWhere!=''set@strSQL='selectcount(*)asTotalfrom'+@tblName+'where'+@strWhereend--以下的所有代码都是@doCount为0的情况:--如果@OrderType是1,就执行降序,否则为升序!elsebegin--查询条件为空set@strTmp='>(selectmax'set@strOrder='orderby

4、'+@fldName+'asc'--查询条件不为空if@OrderType=1beginset@strTmp='<(selectmin'set@strOrder='orderby'+@fldName+'desc'end--如果是第一页就执行代码,这样会加快执行速度if@PageIndex=1begin--查询条件为空set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+'from'+@tblName+''+@strOrder--如果查询条件不为空,if@st

5、rWhere!=''set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+'from'+@tblName+'where'+@strWhere+''+@strOrderend--如果不是第一页,则elsebegin--以下代码赋予了@strSQL以真正执行的SQL代码--sql查询语句set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+'from'+@tblName+'where'+@fldName+'

6、'+@strTmp+'('+@fldName+')from(selecttop'+str((@PageIndex-1)*@PageSize)+''+@fldName+'from'+@tblName+''+@strOrder+')astblTmp)'+@strOrder--如果查询条件不为空,则另写sql语句if@strWhere!=''set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+'from'+@tblName+'where'+@fldName+''

7、+@strTmp+'('+@fldName+')from(selecttop'+str((@PageIndex-1)*@PageSize)+''+@fldName+'from'+@tblName+'where'+@strWhere+''+@strOrder+')astblTmp)and'+@strWhere+''+@strOrderendendexec(@strSQL)GO--运行存储过程pages--表名varchar,要返回的列名(*为返回所有)varchar,排序的列varchar,每页显示数量int,--

8、第几页int,是否统计总数bit,是否降序排列bit,排列条件(不要带where)varchar--统计borrow表的记录数量execpages'uu','*','',0,0,1,0,''--按borrowid排倒序分别显示1、2、3页的信息execpages'uu','*','uid',4,1,0,1,''execpages'uu','*','uid',4,2,0,1

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

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

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