执行分页存储过程的问题.
以下是个分页的存储过程.
create PROC UP_Pager
@sql nvarchar(4000), --要执行的sql语句
@pagesize int=10, --每页的大小
@currentpage int=1, --要显示的页码
@recordcount int=0 out, --记录数
@pagecount int=0 out --总页数
AS
SET NOCOUNT ON
DECLARE @p1 int
--EXEC sp_cursoropen @p1 output, @sql, @scrollopt=1, @ccopt=1, @rowcount=@pagecount output
EXEC sp_cursoropen @p1 output, @S, @scrollopt=1, @ccopt=1, @rowcount=@pagecount output
--计算总页数
IF ISNULL(@pagesize, 0) < 1 SET @pagesize = 10
--SET @PageCount=(@PageCount+@pagesize-1)/@pagesize
--IF ISNULL(@currentpage,0)<1 OR ISNULL(@currentpage,0)>@pagesize
-- SET @currentpage=1
--ELSE
-- SET @currentpage=(@currentpage-1)*@pagesize+1
SELECT @recordcount=@pagecount,@pagecount=ceiling(1.0*@pagecount/@pagesize) ,@currentpage=(@currentpage-1)*@pagesize+1
SELECT @recordcount recordcount ,@pagecount pagecount
EXEC sp_cursorfetch @p1,16,@currentpage,@pagesize
EXEC sp_cursorclose @p1
GO
当把传入的@sql变量的 字符..超过4000个..应该怎么办?
像这样:
@sql = @sql1 + @sql2 + @sql3
exec UP_Pager @sql,99999,1
执行后有错误..