|

楼主 |
发表于 2020-6-30 17:00:02
|
显示全部楼层
CREATE PROCEDURE List
@PageIndex INT, --输入当前页码
@PageSize INT, --每页的记录数
@RecordCount INT OUT, --记录数
@PageCount INT OUT --页数
AS
SELECT @RecordCount = COUNT(*) FROM BLOG_Info INNER JOIN LOG_User ON BLOG_Info.uid = BLOG_User.uid
SET @PageCount = CEILING(@RecordCount * 1.0 / @PageSize)
DECLARE @SQLSTR NVARCHAR(1000)
IF @PageIndex = 0 OR @PageCount <= 1 --第一页
set @SQLSTR = "select top "+STR( @PageSize )+" BLOG_Info.title, BLOG_Info.detail, BLOG_User.uname, BLOG_Info.dtime, BLOG_User.url, BLOG_Info.iid FROM BLOG_Info INNER JOIN BLOG_User ON BLOG_Info.uid = BLOG_User.uid order by BLOG_Info.dtime desc"
else if @PageIndex = @PageCount - 1 --最后一页
set @SQLSTR = "select top "+STR( @PageSize )+"BLOG_Info.title, BLOG_Info.detail, BLOG_User.uname, BLOG_Info.dtime, BLOG_User.url, BLOG_Info.iid FROM BLOG_Info INNER JOIN BLOG_User ON BLOG_Info.uid = BLOG_User.uid where BLOG_Info.iid>(select max(BLOG_Info.iid) from (select top "+STR(@PageSize * @PageIndex )+" BLOG_Info.title, BLOG_Info.detail, BLOG_User.uname, BLOG_Info.dtime, BLOG_User.url, BLOG_Info.iid FROM BLOG_Info INNER JOIN BLOG_User ON BLOG_Info.uid = BLOG_User.uid order by BLOG_Info.dtime desc )) order by BLOG_Info.dtime desc"
else
set @SQLSTR = "select top "+STR( @PageSize )+"BLOG_Info.title, BLOG_Info.detail, BLOG_User.uname, BLOG_Info.dtime, BLOG_User.url, BLOG_Info.iid FROM BLOG_Info INNER JOIN BLOG_User ON BLOG_Info.uid = BLOG_User.uid where BLOG_Info.iid>(select max(BLOG_Info.iid) from (select top "+STR(@PageSize * @PageIndex )+" BLOG_Info.title, BLOG_Info.detail, BLOG_User.uname, BLOG_Info.dtime, BLOG_User.url, BLOG_Info.iid FROM BLOG_Info INNER JOIN BLOG_User ON BLOG_Info.uid = BLOG_User.uid order by BLOG_Info.dtime desc )) order by BLOG_Info.dtime desc"
EXEC (@SQLSTR)
GO
这是我的存储过程,看看有没有错。 |
|