当前位置:首页 > PHP教程 > PHP总结归纳

SqlServer分页存储过程

sqlserver 分页存储过程 create proc [dbo].[proc_opinion_baseinfo] @tablename varchar(4000), @pkfield varchar(100), @pageindex int=1, @pagesize int=10, @sqlwhere nvarchar(4000), @rowcount bigint output, @pagecount bigint output as if(@sql

  sqlserver 分页存储过程

  create proc [dbo].[proc_opinion_baseinfo]

  @tablename varchar(4000),

  @pkfield varchar(100),

  @pageindex int=1,

  @pagesize int=10,

  @sqlwhere nvarchar(4000),

  @rowcount bigint output,

  @pagecount bigint output

  as

  if(@sqlwhere='1')

  set @sqlwhere = '1=1'

  declare @sql nvarchar(4000),,@start int,@end int

  set @sql='select * from (select row_number() over(order by '+@pkfield+' desc) rowid,* from '+@tablename+' where '+@sqlwhere

  set @start = (@pageindex-1)*@pagesize+1

  set @end = @start+@pagesize-1

  set @sql = @sql + ') t where rowid between '+cast(@start as varchar(20))+' and ' +cast(@end as varchar(20))

  exec (@sql)

  set @sql = 'select @rowcount=count(1) from '+@tablename+' where '+@sqlwhere

  exec sp_executesql @sql,n'@rowcount bigint output',@rowcount output

  if(@rowcount%@pagesize=0)

  begin

  set @pagecount = @rowcount / @pagesize

  end

  else

  begin

  set @pagecount = @rowcount / @pagesize +1

  end

.syntaxhighlighter{padding-top:20px;padding-bottom:20px;}
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!