top 后面不能跟变量,只能是实际整数

解决方案 »

  1.   


    執行:
    declare @num int
    set @num=5
    select top @num * from tabchar
    會出錯,改為:
    declare @sql varchar(1000)
    declare @num int
    set @num=5
    set @sql='select top '+cast(@num as varchar) +' * from tabchar'
    exec(@sql)
      

  2.   

    不好意思,纠正一下,set max(yc)=(max(yc) +'-'+'select top @c yc from back1 )where glh=@b那个不是yc,应该是ys
      

  3.   


    執行:
    declare @num int
    set @num=5
    select top @num * from tabchar
    會出錯,改為:
    declare @sql varchar(1000)
    declare @num int
    set @num=5
    set @sql='select top '+cast(@num as varchar) +' * from tabchar'
    exec(@sql)
      

  4.   

    你的select top @c
    需要用动态的sql 来解决,如
    declare @sql varchar(1000)
    declare @num int
    set @num=5
    set @sql='select top '+cast(@num as varchar) +' * from tabchar'
    exec(@sql)
    还有就是你的max(fs)不能这么使用。