CREATE Procedure selectCurrentPage @Page int,@TypeID int AS
exec('    SELECT top 10 * FROM FileDetail 
    where FileID not in (select top '+cast((@Page-1)*10 as varchar) +' FileID from FileDetail) and TypeID=@TypeID')    return

解决方案 »

  1.   

    To   CrazyFor(太阳下山明朝依旧爬上来)
       分析器报告说cast附近有语法错误。
       该怎么办?
      

  2.   

    to waterass:
    cast((@Page-1)*10 as varchar)这句有误,应改为 
    cast((@Page-1)*10 as varchar(6))
      

  3.   

    CREATE Procedure selectCurrentPage @Page int,@TypeID int 
    AS
       declare @sql varchar(200)
      set @sql = '
        SELECT top 10 * FROM FileDetail 
        where FileID not in (select top ' + cast((@Page-1)*10 as char) + ' FileID  from FileDetail) and TypeID= ' + cast(@TypeID as char)   exec(@sql)
        return
      

  4.   

    CREATE Procedure selectCurrentPage @Page int,@TypeID int AS
    exec('    SELECT top 10 * FROM FileDetail 
        where FileID not in (select top '+cast((@Page-1)*10 as varchar) +' FileID from FileDetail) and TypeID='+cast(@TypeID as varchar) )    return
      

  5.   

    To txlicenhe(不做技术高手) 
     终于搞定了,太感谢了。
    To  CrazyFor(太阳下山明朝依旧爬上来)
       你的还是说cast附近有语法错误,不过还是十分感谢你的大力相助