手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >一个比较实用的大数据量分页存储过程
一个比较实用的大数据量分页存储过程
摘要:createprocsp_PublicTurnPageWebSite(@TBNamenvarchar(100)='',--表名,如pinyi...

createprocsp_PublicTurnPageWebSite(

@TBNamenvarchar(100)='',--表名,如pinyin

@PageSizeint=10,--每页的记录数,默认为10

@CurPageint=1,--表示当前页1

@KeyFieldnvarchar(100)='ID',--关键字段名,默认为ID,该字段要求是表中的索引或无重复和不为空的字段

@KeyAscDescnvarchar(4)='ASC',--关键字的升、降序,默认为升序ASC,降序为DESC

@Fieldsnvarchar(500)='*',--所选择的列名,默认为全选

@Conditionnvarchar(200)='',--where条件,默认为空

@Ordernvarchar(200)=''--排序条件,默认为空

)withencryptionas

if@TBName=''

begin

raiserror('请指定表名!',11,1)

return

end

if@PageSize<=0or@CurPage<0

begin

raiserror('当前页数和每页的记录数都必须大于零!',11,1)

return

end

if@KeyAscDesc='DESC'

set@KeyAscDesc='<'

else

set@KeyAscDesc='>'

if@Condition<>''

set@Condition='where'+@Condition

declare@SQLnvarchar(2000)

set@SQL=''

if@CurPage=1

set@SQL=@SQL+'SelectTop'+cast(@PageSizeasnvarchar(20))+''+@Fields+'FROM'+@TBName+@Condition+''+@Order

else

begin

declare@iTopNumint

set@iTopNum=@PageSize*(@CurPage-1)

set@SQL=@SQL+'declare@sLastValuenvarchar(100)'+char(13)

set@SQL=@SQL+'SelectTop'+cast(@iTopNumasnvarchar(20))+'@sLastValue='+@KeyField+'FROM'+@TBName+@Condition+''+@Order+char(13)

declare@Condition2nvarchar(200)

if@Condition=''

set@Condition2='where'+@KeyField+@KeyAscDesc+'@sLastValue'

else

set@Condition2='and'+@KeyField+@KeyAscDesc+'@sLastValue'

set@SQL=@SQL+'SelectTop'+cast(@PageSizeasnvarchar(20))+''+@Fields+'FROM'+@TBName+@Condition+@Condition2+@Order

end

EXECUTEsp_executesql@SQL

【一个比较实用的大数据量分页存储过程】相关文章:

SQL 数据库中的存储过程的参数问题

分页的存储过程

如何恢复数据库备份到一个已存在的正在使用的数据库上

分页 SQLServer存储过程

SqlServer 分页存储过程

最长用最基本的MSSQL数据库备份与还原

一个删除指定表的所有索引和统计的过程

SqlServer 2000、2005分页存储过程整理

SQL Server 大量数据的分页存储过程代码

php 调用mssql 2000存储过程代码

精品推荐
分类导航