展会信息港展会大全

SqlServer 分页存储过程
来源:互联网   发布日期:2016-02-16 10:24:30   浏览:2313次  

导读: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

赞助本站

人工智能实验室

相关热词: 开发 编程 android

相关内容
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港