가장 큰 포크의 페이지 저장 과정

10203 단어 저장 프로세스
DECLARE @pagenum AS INT, @pagesize AS INT 

SET @pagenum = 2 

SET @pagesize = 3 

SELECT * 

FROM (SELECT ROW_NUMBER() OVER(ORDER BY newsid DESC) AS rownum,  

        newsid, topic, ntime, hits 

      FROM news) AS D 

WHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize 

ORDER BY newsid DESC 





--aspx ? ? ? ? ?SQL ? ?pageid ? ? ? ? ?。?



--CSDN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:?



ALTER PROCEDURE news_Showlist 

( 

@tblName   varchar(255),       --  ? ?

@strGetFields varchar(1000),  --  ? ? ? ? ? ?

@fldName varchar(255),      --  ? ? ? ? ? ?

@PageSize   int ,          --  ? ? ?





@PageIndex  int ,           --  ? ?

@strWhere  varchar(1500),  --  ? ? ? ?( ? ?:  ? ? ?where) 

@Sort varchar(255)      -- ? ? ? ? ?



) 

AS 

declare @strSQL   varchar(5000)       --  ? ? ?

declare @strTmp   varchar(110)        --  ? ? ? ?

declare @strOrder varchar(400)        --  ? ? ? ?



  



if @Sort = ’?desc’?

begin 

set @strTmp = ’?<(select min’?

set @strOrder = ’?order by ’?+ @fldName +’?desc’?

-- ? ?@OrderType ? ?,? ? ? ? ? ?,? ? ? ? ? ?!?

end 

else 

begin 

set @strTmp = ’?>(select max’?

set @strOrder = ’?order by ’?+ @fldName +’?asc’?



end 

  

if @PageIndex = 1 

begin 

if @strWhere != ’?’?   

  begin 

set @strSQL = ’?select top ’?+ str(@PageSize) +’?’?+@strGetFields+ ’? from ’?+ @tblName + ’?where ’?+ @strWhere + ’?’?+ @strOrder 

  end 

else 

  begin 

set @strSQL = ’?select top ’?+ str(@PageSize) +’?’?+@strGetFields+ ’? from ’?+ @tblName + ’?’?+ @strOrder 

  end 

-- ? ? ? ? ? ? ? ? ? ? ? ? ?,? ? ? ? ? ? ? ? ? ?

end 

else 

begin 

-- ? ? ? ? ? ? ?@strSQL ? ? ? ? ? ?SQL ? ?

set @strSQL = ’?select top ’?+ str(@PageSize) +’?’?+@strGetFields+ ’? from ’?

+ @tblName + ’?where ’?+ @fldName + ’?’?+ @strTmp + ’?(’?+ @fldName + ’?) from (select top ’?+ str((@PageIndex-1)*@PageSize) + ’?’?+ @fldName + ’?from ’?+ @tblName + ’?’?+ @strOrder + ’?) as tblTmp)’?+ @strOrder 



  

if @strWhere != ’?’?

set @strSQL = ’?select top ’?+ str(@PageSize) +’?’?+@strGetFields+ ’? from ’?

+ @tblName + ’?where ’?+ @fldName + ’?’?+ @strTmp + ’?(’?

+ @fldName + ’?) from (select top ’?+ str((@PageIndex-1)*@PageSize) + ’?’?

+ @fldName + ’?from ’?+ @tblName + ’?where ’?+ @strWhere + ’?’?

+ @strOrder + ’?) as tblTmp) and ’?+ @strWhere + ’?’?+ @strOrder 

end 

exec (@strSQL) 

RETURN 

좋은 웹페이지 즐겨찾기