求高人指点此分页存储过程怎么样?

 

求高人指点此存储过程怎么样,这是我公司一个人写的,他走了好久了,问公司其他人都不会,只能上园子了,欢迎讨论

这个存储过程一共返回了3个datatable,第一个没用,第二个是返回的数据,第三个是总条数,

或者谁有好更好的,欢迎分享

--分页储存过程

create  PROC   [dbo].[up_page]

@sql                   ntext,           --要执行的sql语句 

@PageCurrent   int=1,           --要显示的页码 

@PageSize         int=10         --每页的大小 

--@PageCount       int   OUTPUT   --总页数 

AS 

SET   NOCOUNT   ON 

DECLARE   @p1   int

DECLARE   @PageCount int

--初始化分页游标 

EXEC   sp_cursoropen   

@cursor=@p1   OUTPUT, 

@stmt=@sql, 

@scrollopt=1, 

@ccopt=1, 

@rowcount=@PageCount   OUTPUT 

--计算总页数 

IF   ISNULL(@PageSize,0) <1   

SET   @PageSize=10 

select @PageCount

SET   @PageCount=(@PageCount+@PageSize-1)/@PageSize 

IF   ISNULL(@PageCurrent,0) <1   OR   ISNULL(@PageCurrent,0)> @PageCount 

SET   @PageCurrent=1 

ELSE 

SET   @PageCurrent=(@PageCurrent-1)*@PageSize+1 

--显示指定页的数据 

EXEC   sp_cursorfetch   @p1,16,@PageCurrent,@PageSize 

--关闭分页游标 

EXEC   sp_cursorclose   @p1



GO

 

 

你可能感兴趣的:(存储过程)