declare @size int
set @size=5
select top @size * from table;
错误提示"@size 处有错误"!
如果写成select top 5 * from table;就好用
请求各位帮助!

解决方案 »

  1.   

    declare @size int
    set @size=5
    exec(' select top '+ @size+' * from table')
      

  2.   

    declare @size int
    set @size=5
    exec('select top '+@size+' * from table')--要用动态SQL
      

  3.   

    create table a([id] [int])
    insert into a(id) values(1)
    insert into a(id) values(2)
    insert into a(id) values(3)
    insert into a(id) values(4)
    insert into a(id) values(5)declare @num as int
    declare @sql as varchar(2000)
    set @num = 2
    set @sql = 'select top ' + cast(@num as char) + ' * from a'
    exec(@sql)drop table aid          
    ----------- 
    1
    2
      

  4.   


    已有人问过了
    http://community.csdn.net/Expert/topic/5167/5167844.xml?temp=.4502985
    2000:
    top n:这个n要么是个显式的数值,要么只能用变量出现在exec()里面。
      

  5.   

    sql 2005 这样写就可以。 2000 不行。