我这里有一段SQL存储过程(分页+条件查询),哪位大大能帮我修正一下么?
USE [#80Tao_HLSuperet#]
GO
/****** Object:  StoredProcedure [dbo].[SP_Help_SELECT_GetAllList]    Script Date: 11/24/2011 09:48:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Help_SELECT_GetAllList]@categoryID varchar(20),--分类ID
@isURL int, --是否启用
@helpTitle varchar(200),--关键字
@pageSize int output, --分页大小
@pageTotal int output, --页总数
@pageCurrent int output, --当前页
@RecordTotal int output --记录总数AS
declare @SQL varchar(800) --组合的SQL语句
declare @PageSQL nvarchar(800) --组合的SQL语句
declare @WHERE varchar(500)='' --组合WHERE条件
declare @TempRecordTotal varchar(300) --记录总数
BEGIN--设置条件
if(@categoryID<>'' or @isURL<>-1 or @helpTitle<>'')
BEGIN
SET @WHERE = 'WHERE 1=1 '
if(@categoryID<>'') BEGIN SET @WHERE = @WHERE+' and categoryID like ''%,'+convert(varchar(5),@categoryID)+',%''' END
if(@isURL<>-1) BEGIN SET @WHERE = @WHERE+' and isURL=' + CONVERT(varchar(20),@isURL) END
if(@helpTitle<>'') BEGIN SET @WHERE = @WHERE+' and (helpTitle like ''%'+@helpTitle+'%'' )' END
END--设置总记录数
SET @PageSQL ='SELECT @RecordTotal = count(helpTitle) from [Help]'+@WHERE
exec sp_executesql @PageSQL,N'@RecordTotal int output',@RecordTotal output--设置页总数
IF @RecordTotal % @pageSize=0
BEGIN 
SET @pageTotal = @RecordTotal/@pageSize 
END 
ELSE 
BEGIN 
SET @pageTotal = @RecordTotal/@pageSize+1 
END--设置当前页数
IF(@pageCurrent<1) BEGIN SET @pageCurrent = 1 END
IF(@pageCurrent>@pageTotal) BEGIN SET @pageCurrent = @pageTotal ENDIF(@pageCurrent=1)
BEGIN
SET @SQL='SELECT TOP '+convert(varchar(5),@pageSize)+' 0 as RowNumber,* from [Help] '+@WHERE+' Order by categoryID asc,ID asc'
END
ELSE
BEGIN
SET @SQL='SELECT Top '+convert(varchar(5),@pageSize)+' * from(select ROW_NUMBER() OVER(ORDER BY categoryID asc,ID asc) RowNumber,* from [Help] '+@WHERE+' )  where  RowNumber>'+convert(varchar(10),(@pageCurrent-1)*@pageSize)+' Order by RowNumber '
ENDexec (@SQL)END