USE [SxbFanWen]
GO
/****** Object:  StoredProcedure [dbo].[usp_FW_KeyWord_Pager]    Script Date: 07/14/2015 16:43:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[usp_FW_KeyWord_Pager]
@pageindex int,
@pagesize int,
@rowcount int output,
@where nvarchar(400)
as
declare @sql nvarchar(max);
declare @pagecount int;
set @sql=' select @rowcount=count(1) from FW_KeyWord '+@where;
--exec @sql @rowcount=@rowcount output;
exec sp_executesql @sql, N'@rowcount int out', @rowcount out

if @rowcount%@pagesize=0 
 set @pagecount=@rowcount/@pagesize;
 else
	set @pagecount=@rowcount/@pagesize+1;
	
if @pageindex>@pagecount 
	set @pageindex=@pagecount;

set @sql='select a.* from (
SELECT     FW_KeyWord.Kid, FW_KeyWord.keywordName, FW_KeyWord.Title, FW_KeyWord.KeyWord, FW_KeyWord.Description, FW_KeyWord.cid, FW_KeyWord.sid, 
                      FW_KeyWord.tid, FW_KeyWord.sort, FW_KeyWord.mark, FW_Class.CName, FW_SubClass.sName, FW_ThreeClass.tname,row_number() over (order by FW_KeyWord.sort,FW_KeyWord.Kid) rowno
FROM         FW_KeyWord INNER JOIN
                      FW_Class ON FW_KeyWord.cid = FW_Class.CID LEFT OUTER JOIN
                      FW_SubClass ON FW_KeyWord.sid = FW_SubClass.SID LEFT OUTER JOIN
                      FW_ThreeClass ON FW_KeyWord.tid = FW_ThreeClass.tid'+@where+')a where a.rowno between '
 set @sql=@sql+cast( (@pageindex-1)*@pagesize+1 as nvarchar)+' and '+ convert( nvarchar, @pageindex*@pagesize);                  
                      exec(@sql);

 

posted on 2015-07-14 16:47  星星点灯6  阅读(161)  评论(0)    收藏  举报