【SQL Server】Sql分页(自用)
下面是存储过程的创建,用的时候调用就行了
/****** Object: StoredProcedure [dbo].[sq_paging] Script Date: 09/10/2014 09:57:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[Yc_PageSelect] @tbName varchar(255), --表名 @tbFields varchar(1000), --返回字段 @PageSize int, --页尺寸 @PageIndex int, --页码 @strWhere varchar(1000), --查询条件 @StrOrder varchar(255), --排序条件 @Key varchar(20) --排序字段 as declare @strSql varchar(5000) --主语句 declare @strSqlCount nvarchar(500)--查询记录总数主语句 --------------总记录数--------------- if @strWhere !=‘‘ begin set @strSqlCount=‘Select COUNT(*) as TotalCout from ‘ + @tbName + ‘ where ‘+ @strWhere end else begin set @strSqlCount=‘Select COUNT(*) as TotalCout from ‘ + @tbName end --------------分页------------ if @PageIndex <= 1 begin set @strSql=‘select top ‘+str(@PageSize)+‘ ‘+@tbFields+‘from ‘ + @tbName + ‘ where ‘ + @strWhere +‘ ‘ + @strOrder end else begin set @strSql=‘select top ‘+str(@PageSize)+‘ ‘+@tbFields+‘from ‘ + @tbName + ‘ where ‘ + @strWhere +‘ AND ‘+@Key +‘ > (select MAX(‘+@Key +‘) from ( select top ‘+str((@PageIndex-1)*@PageSize)+‘ ‘+@Key +‘ from ‘ + @tbName + ‘ where ‘ + @strWhere +‘ ‘+@strOrder +‘ )a) ‘ + @strOrder end exec (@strSqlCount) exec(@strSql) GO
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。