declare @num int
set @num=1
select top @num * from atable错误信息:
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: '@num' 附近有语法错误。
如果把@num 换成数字的话就正确了,为什么不能直接使用@num呢

解决方案 »

  1.   

    declare @num char(1)
    set @num='1'
    exec('select top '+@num+' * from atable')
      

  2.   

    top n不接受参数,如楼上,用动态SQL吧。
      

  3.   

    或者复杂一点:
    -------------------------------------------
    declare @num int
    set @num=1
    set rowcount @num
    select * from atable
    set rowcount 0
      

  4.   

    或者复杂一点:
    -------------------------------------------
    declare @num int
    set @num=1
    set rowcount @num
    select * from atable
    set rowcount 0