关于SQL存储过程的一个问题。

 declare @TotalNum int
exec PUB_AREA_SelectAREACITYByHsfSearchss '',10,1,@TotalNum output
select @TotalNum

alter PROCEDURE [dbo].[PUB_AREA_SelectAREACITYByHsfSearchss]                
@HsfSearch VARCHAR(2000), --刷选条件                
@PageSize INT,    --分页条数                
@CurPage INT,    --当前页码                
@TotalNum INT OUTPUT  --总条数                
AS                 

 DECLARE @BasicSQL VARCHAR(8000)                  
 DECLARE @BasicSQLTotal VARCHAR(8000)                
 SET @BasicSQLTotal='select AreaId,AreaName,ParentId from PUB_AREA'                    

 IF (@HsfSearch IS NOT NULL AND @HsfSearch <> '')                
 BEGIN                
  SET @BasicSQLTotal=@BasicSQLTotal+' WHERE '+@HsfSearch                
 END                 
 ELSE                 


 SET @BasicSQL=' SELECT AreaId,AreaName,ParentId                 
     FROM ('+@BasicSQLTotal+' ) A WHERE ' +                  
     CONVERT(VARCHAR,(@CurPage-1) * @PageSize + 1) + ' AND ' +                  
     CONVERT(VARCHAR,@CurPage * @PageSize) +' group by AreaId,AreaName,ParentId'                    

 EXEC  (@BasicSQL)                

 CREATE TABLE #Temp1                
 (                 
  num INT                
 )                

 INSERT INTO #Temp1                 
 EXEC ('SELECT count(*) FROM (' + @BasicSQL + ') A')  -- @BasicSQLTotal               

 SELECT @TotalNum=(                
      SELECT *                 
      FROM #Temp1                 
      )                    

 DROP TABLE #Temp1 

不知道这样写对不对,是针对单表的查询,

建议楼主给出具体的目的。你贴这个代码,大家也只能给你看语法问题。