CREATE PROCEDURE bbs_showtopicinfo
(@sid int,
@pagesize int,
@current int)
 AS
declare @sql nvarchar(1000)
set @sql='SELECT TOP '+CAST(@pagesize as varchar)+'
        *  FROM bbstopic where sid= '+cast(@sid as varchar)+'
         and ([id] NOT IN
                   (SELECT TOP '+CAST(@current-1*@pagesize  as varchar)+' [id]
                  FROM bbstopic where sid='+cast(@sid as varchar)+' ORDER BY [id] DESC) order by id desc'
exec(@sql)
GO
@sid 是表中的一个类别字段,来分类查询结果的。

解决方案 »

  1.   

    CREATE   PROCEDURE   bbs_showtopicinfo 
    (@sid   int, 
    @pagesize   int, 
    @current   int) 
      AS 
    declare   @sql   nvarchar(1000) 
    set   @sql='SELECT   TOP   '+CAST(@pagesize   as   varchar)+' 
                    *     FROM   bbstopic   where   sid=   '+cast(@sid   as   varchar)+' 
                      and   [id]   NOT   IN 
                                          (SELECT   TOP   '+CAST(@current-1*@pagesize     as   varchar)+'   [id] 
                                        FROM   bbstopic   where   sid='+cast(@sid   as   varchar)+'   ORDER   BY   [id]   DESC)   order   by   id   desc' 
    exec(@sql) 
      

  2.   

    CREATE PROCEDURE bbs_showtopicinfo
    (@sid int,
    @pagesize int,
    @current int)
     AS
    declare @sql nvarchar(1000)
    set @sql='SELECT TOP '+CAST(@pagesize as varchar)+'
            *  FROM bbstopic where sid= '+cast(@sid as varchar)+'
             and [id] NOT IN
                       (SELECT TOP '+CAST(@current*@pagesize  as varchar)+' [id]
                      FROM bbstopic where sid='+cast(@sid as varchar)+'  order by [id]  desc) order by [id] desc'
    EXEC sp_ExecuteSql @sql
    GO
    已经解决.-1这里错误.