一个比较实用的大数据量分页存储过程 (选择自 jierry007 的 Blog )
2005-03-27 21:43
330 查看
create proc sp_PublicTurnPageWebSite( @TBName nvarchar(100)='', --表名,如 pinyin @PageSize int=10, --每页的记录数,默认为 10 @CurPage int=1, --表示当前页 1 @KeyField nvarchar(100)='ID', --关键字段名,默认为 ID,该字段要求是表中的索引 或 无重复和不为空的字段 @KeyAscDesc nvarchar(4)='ASC', --关键字的升、降序,默认为升序 ASC , 降序为 DESC @Fields nvarchar(500)='*', --所选择的列名,默认为全选 @Condition nvarchar(200)='', --where 条件,默认为空 @Order nvarchar(200)='' --排序条件,默认为空 ) with encryption as if @TBName = '' begin raiserror('请指定表名!',11,1) return end if @PageSize <=0 or @CurPage <0 begin raiserror('当前页数和每页的记录数都必须大于零!',11,1) return end if @KeyAscDesc = 'DESC' set @KeyAscDesc = '<' else set @KeyAscDesc = '>' if @Condition <> '' set @Condition = ' where ' + @Condition declare @SQL nvarchar(2000) set @SQL = '' if @CurPage = 1 set @SQL = @SQL + 'SELECT Top ' + cast(@PageSize as nvarchar(20)) + ' ' + @Fields + ' FROM ' + @TBName + @Condition + ' ' + @Order else begin declare @iTopNum int set @iTopNum = @PageSize * (@CurPage - 1) set @SQL = @SQL + 'declare @sLastValue nvarchar(100)' + char(13) set @SQL = @SQL + 'SELECT Top ' + cast(@iTopNum as nvarchar(20)) + ' @sLastValue=' + @KeyField + ' FROM ' + @TBName + @Condition + ' ' + @Order + char(13) declare @Condition2 nvarchar(200) if @Condition = '' set @Condition2 = ' where ' + @KeyField + @KeyAscDesc + '@sLastValue ' else set @Condition2 = ' and ' + @KeyField + @KeyAscDesc + '@sLastValue ' set @SQL = @SQL + 'SELECT Top ' + cast(@PageSize as nvarchar(20)) + ' ' + @Fields + ' FROM ' + @TBName + @Condition + @Condition2 + @Order end EXECUTE sp_executesql @SQL
相关文章推荐
- 一个比较实用的大数据量分页存储过程
- 一个比较实用的大数据量分页存储过程
- 一个比较实用的大数据量分页存储过程
- 一个比较实用的大数据量分页存储过程
- 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定
- 建站或者网站搬家换空间的时候,企业站长最关心的一个问题是该如何选择网站空间,而这一问题对于一些擅长的站长来说非常小意思,但对于部分企业站长来说是一个比较头疼的问题。根据不完整数据显示,很多企业站长因为
- datalist 的用法。也是增删改查,但是比较智能。用数据绑定的方式,可以有不同的显示方法,下面是对一个表的增删改查的参考代码
- 翻译].NET委托:一个C#睡前故事 [推荐] 选择自 cyp403 的 Blog
- 一个比较实用的jQuery例子
- 选择一个文件夹下所有txt文件的几列数据
- 内存对齐与ANSI C中struct型数据的内存布局 选择自 soloist 的 Blog
- 一个多对多关系表的数据分页显示问题-sp_cursoropen 比较 临时表方式
- Easyui - 一个比较复杂的ComboGrid(数据表格下拉框)多选的例子
- 不用模板,只用ASP+FSO生成静态HTML页的一个方法(对于内容密集型页面特别适用) 选择自 goaler 的 Blog
- 在plsql中,总是遇到在clob类型字段上存储数据出错--字符串太长,现在有一个比较简单的解决办法
- Verilog一个小程序:采用casez语句描述数据选择器
- 一个比较全面的java随机数据生成工具包
- 制作一个选择中国大学的弹框 (数据、步骤、代码)
- DataTable中数据记录的统计 选择自 triout 的 Blog