declare @aa int,@a varchar(1000)
  set @aa=100
  set @a='select top '+cast(@aa as varchar(10))+' name from 表A'exec(@a)

解决方案 »

  1.   

    直接使用不允许用exec来实现:
    declare @aa int
      set @aa=100
      exec('select top '+@aa+' * from tb')
      

  2.   

    其实如果你想按你的要求查记录的话可以用下面的方法:
    declare @aa int
    set @aa=2
    set rowcount @aa
    select * from 表A
    set rowcount 0
      

  3.   

    exec ('select top ' + cast(@aa as varchar) + ' name from 表A')
      

  4.   

    declare @aa int
      set @aa=100
      exec('select top '+@aa+' * from tb'
      

  5.   

    declare @aa int
      set @aa=100
      exec('select top '+@aa+' * from tb')