create procedure PC_BlogRes
(@ResClass int ,@Page int)
as
select top 5 R.ResourceID,R.PhotoUrl,R.ResTitle,B.BlogName,B.BlogId,R.UpTime,R.ResCount,C.ChannelName,R.ResDescription  from Resource R inner join BlogInfo B on R.BlogId=B.BlogId inner join
Channel C on R.ChannelId=C.ChannelId and ResClass=@ResClass where R.ResourceID>=(select max(ResourceID) from (
select top @Page * from Resource order by ResourceID) as T) order by R.ResourceID这个问题总是说@Page 附近语法错误
服务器: 消息 170,级别 15,状态 1,过程 PC_BlogRes,行 4
第 4 行: '@page' 附近有语法错误。
   是怎么回是呢?

解决方案 »

  1.   

    select top @Page * from Resource order by ResourceID
    SQL中不允许这样用,只能直接用数字,想其他办法吧
      
      

  2.   

    select top @Page * from Resource  不能这样。
    你可以 
    set @Sql = 'select top' +  @Page + ' * from Resource'
    EXEC(@Sql)
      

  3.   

    把整条SQL语句变成动执行语句即使用EXEC来执行.
    处理方法大概同楼上.
      

  4.   

    select top @Page * from Resource ,top后面好像只能跟数字吧
      

  5.   

    拼出字符串,再用EXEC执行就行了.楼上已经有高手提供了..
      

  6.   

    用这个exec(select top @Page * from Resource order by ResourceID)这样才可以呀