sql server中千万数量级分页存储过程代码
2022-11-12 09:53:43
内容摘要
这篇文章主要为大家详细介绍了sql server中千万数量级分页存储过程代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!/****************
文章正文
这篇文章主要为大家详细介绍了sql server中千万数量级分页存储过程代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
/******************************************************************中国无忧商务网千万数量级分页存储过程*****************************************************************参数说明:1.Tables:表名称,视图2.PrimaryKey:主关键字3.Sort:排序语句,不带OrderBy比如:NewsIDDesc,OrderRowsAsc4.CurrentPage:当前页码5.PageSize:分页尺寸6.Filter:过滤语句,不带Where7.Group:Group语句,不带GroupBy版权所有:中国无忧商务网(http://www.cn5135.com)欢迎试用,有什么心得请MCREATEPROCEDURECN5135_SP_Pagination/******************************************************************中国无忧商务网千万数量级分页存储过程*****************************************************************参数说明:1.Tables:表名称,视图2.PrimaryKey:主关键字3.Sort:排序语句,不带OrderBy比如:NewsIDDesc,OrderRowsAsc4.CurrentPage:当前页码5.PageSize:分页尺寸6.Filter:过滤语句,不带Where7.Group:Group语句,不带GroupBy版权所有:中国无忧商务网(http://www.cn5135.com)欢迎试用,有什么心得请Mail:xzhijun@GMail.com注:转载请保留相关版权说明,谢谢!^_^***************************************************************/(@Tablesvarchar(1000),@PrimaryKeyvarchar(100),@Sortvarchar(200)=NULL,@CurrentPageint=1,@PageSizeint=10,@Fieldsvarchar(1000)='*',@Filtervarchar(1000)=NULL,@Groupvarchar(1000)=NULL)AS/*默认排序*/IF@SortISNULLOR@Sort=''SET@Sort=@PrimaryKeyDECLARE@SortTablevarchar(100)DECLARE@SortNamevarchar(100)DECLARE@strSortColumnvarchar(200)DECLARE@operatorchar(2)DECLARE@typevarchar(100)DECLARE@precint/*设定排序语句.*/IFCHARINDEX('DESC',@Sort)>0BEGINSET@strSortColumn=REPLACE(@Sort,'DESC','')SET@operator='<='ENDELSEBEGINIFCHARINDEX('ASC',@Sort)=0SET@strSortColumn=REPLACE(@Sort,'ASC','')SET@operator='>='ENDIFCHARINDEX('.',@strSortColumn)>0BEGINSET@SortTable=SUBSTRING(@strSortColumn,0,CHARINDEX('.',@strSortColumn))SET@SortName=SUBSTRING(@strSortColumn,CHARINDEX('.',@strSortColumn)+1,LEN(@strSortColumn))ENDELSEBEGINSET@SortTable=@TablesSET@SortName=@strSortColumnENDSELECT@type=t.name,@prec=c.precFROMsysobjectsoJOINsyscolumnscono.id=c.idJOINsystypestonc.xusertype=t.xusertypeWHEREo.name=@SortTableANDc.name=@SortNameIFCHARINDEX('char',@type)>0SET@type=@type+'('+CAST(@precASvarchar)+')'DECLARE@strPageSizevarchar(50)DECLARE@strStartRowvarchar(50)DECLARE@strFiltervarchar(1000)DECLARE@strSimpleFiltervarchar(1000)DECLARE@strGroupvarchar(1000)/*默认当前页*/IF@CurrentPage<1SET@CurrentPage=1/*设置分页参数.*/SET@strPageSize=CAST(@PageSizeASvarchar(50))SET@strStartRow=CAST(((@CurrentPage-1)*@PageSize+1)ASvarchar(50))/*筛选以及分组语句.*/IF@FilterISNOTNULLAND@Filter!=''BEGINSET@strFilter='WHERE'+@Filter+''SET@strSimpleFilter='AND'+@Filter+''ENDELSEBEGINSET@strSimpleFilter=''SET@strFilter=''ENDIF@GroupISNOTNULLAND@Group!=''SET@strGroup='GROUPBY'+@Group+''ELSESET@strGroup=''/*执行查询语句*/EXEC('DECLARE@SortColumn'+@type+'SETROWCOUNT'+@strStartRow+'SELECT@SortColumn='+@strSortColumn+'FROM'+@Tables+@strFilter+''+@strGroup+'ORDERBY'+@Sort+'SETROWCOUNT'+@strPageSize+'SELECT'+@Fields+'FROM'+@Tables+'WHERE'+@strSortColumn+@operator+'@SortColumn'+@strSimpleFilter+''+@strGroup+'ORDERBY'+@Sort+'')GO注:关于sql server中千万数量级分页存储过程代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释