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
不知道这样写对不对,是针对单表的查询,