create PROCEDURE [dbo].[sp_T_NewsPageResults] 

(
@startIndex int,
@maximumRows int,
@conditions nvarchar(400)
)

AS

DECLARE @sql nvarchar(4000)
SET @sql='DEClARE @firstID int
SET ROWCOUNT '+CONVERT(nvarchar(10),@startIndex)+'
SELECT @firstID=NewsID FROM
T_News 
 
WHERE '+@conditions+' ORDER BY NewsID DESCSET ROWCOUNT '+CONVERT(nvarchar(10),@maximumRows)+'
SElECT 
*FROM 
T_News WHERE (NewsID<=@firstID AND '+@conditions+')
ORDER BY NewsID DESCSET ROWCOUNT 0'EXEC sp_executesql @sql

解决方案 »

  1.   

    一个类似翻页的存储过程,降序排列@startIndex - 从多少条记录开始显示
    @maximumRows - 显示记录数
    @conditions - 显示记录的条件
      

  2.   

    你应该这么发...
    create PROCEDURE [dbo].[sp_T_NewsPageResults]  (
    @startIndex int,
    @maximumRows int,
    @conditions nvarchar(400)
    )ASDECLARE @sql nvarchar(4000)
    SET @sql='DEClARE @firstID int
    SET ROWCOUNT '+CONVERT(nvarchar(10),@startIndex)+'
    SELECT @firstID=NewsID FROM
    T_News  
     
    WHERE '+@conditions+' ORDER BY NewsID DESCSET ROWCOUNT '+CONVERT(nvarchar(10),@maximumRows)+'
    SElECT  
    *FROM  
    T_News  WHERE (NewsID<=@firstID AND '+@conditions+')
    ORDER BY NewsID DESCSET ROWCOUNT 0'EXEC sp_executesql @sql
      

  3.   

    一点点 自己看啊 ! 那个关键字不明白 就GOOGLE....create PROCEDURE [dbo].[sp_T_NewsPageResults]  (
    @startIndex int,
    @maximumRows int,
    @conditions nvarchar(400)
    )ASDECLARE @sql nvarchar(4000)
    SET @sql='DEClARE @firstID int
    SET ROWCOUNT '+CONVERT(nvarchar(10),@startIndex)+'
    SELECT @firstID=NewsID FROM
    T_News  
     
    WHERE '+@conditions+' ORDER BY NewsID DESCSET ROWCOUNT '+CONVERT(nvarchar(10),@maximumRows)+'
    SElECT  
    *FROM  
    T_News  WHERE (NewsID<=@firstID AND '+@conditions+')
    ORDER BY NewsID DESCSET ROWCOUNT 0'EXEC sp_executesql @sql