SQL分页存储过程
2010-03-11 20:33
295 查看
create proc PagingForAll
@TableName nvarchar(50), ---表
@Columns nvarchar(500), ---查询的列
@Where nvarchar(500)='', ---查询条件
@IdentityColumn nvarchar(50), ---列,增长列,一般为主键
@OrderBy nvarchar(50)='', --通过哪列排序
@PageIndex int, ----第N页
@PageSize int =50 ----每页多少行
as
set nocount on
declare @sql nvarchar(1000)
if len(@OrderBy)=0
set @OrderBy =@IdentityColumn
set @sql='select top '+convert(nvarchar(10), @PageSize)+' '+@Columns+' from '+@TableName+' where 1=1 '+@Where+' and '+@IdentityColumn+'>
( select isnull(max('+@IdentityColumn+'),0) from
( select top '+convert(nvarchar(10), @PageSize*(@PageIndex-1))+' '+@IdentityColumn+' from ['+@TableName+']
where 1=1 '+@Where+' order by '+@OrderBy+' ) t
)
'
exec(@sql)
set nocount off
go
@TableName nvarchar(50), ---表
@Columns nvarchar(500), ---查询的列
@Where nvarchar(500)='', ---查询条件
@IdentityColumn nvarchar(50), ---列,增长列,一般为主键
@OrderBy nvarchar(50)='', --通过哪列排序
@PageIndex int, ----第N页
@PageSize int =50 ----每页多少行
as
set nocount on
declare @sql nvarchar(1000)
if len(@OrderBy)=0
set @OrderBy =@IdentityColumn
set @sql='select top '+convert(nvarchar(10), @PageSize)+' '+@Columns+' from '+@TableName+' where 1=1 '+@Where+' and '+@IdentityColumn+'>
( select isnull(max('+@IdentityColumn+'),0) from
( select top '+convert(nvarchar(10), @PageSize*(@PageIndex-1))+' '+@IdentityColumn+' from ['+@TableName+']
where 1=1 '+@Where+' order by '+@OrderBy+' ) t
)
'
exec(@sql)
set nocount off
go
相关文章推荐
- sql 分页存储过程
- SQL 分页存储过程
- 一个简单的SQl存储过程分页
- 经过优化测试的SQL分页存储过程
- SQL 存储过程分页--在网上找到代码,收藏起来
- 数据库开发必看 -- 用索引优化SQL,开发优秀的分页存储过程(一)
- SQL分页的存储过程详解
- Sql 分页存储过程
- sql 分页存储过程实例(二)
- 邹老大的分页sql存储过程
- sql通用分页自定义表条件存储过程
- sql 分页取数据的存储过程
- T-sql 存储过程的分页
- [SQL]通用的分页存储过程
- 李洪根关于[SQL]对于分页存储过程
- 修改后的SQL分页存储过程,利用2分法,支持排序
- SQL 使用系统存储过程实现的通用分页存储过程
- sql分页存储过程!与asp.net分页控件一起使用
- Sql 分页存储过程