declare @topCount int
select @topCount=10declare @sql nvarchar(400)set @sql=N'select top @topCount * from tb_company'
exec sp_executesql @sql
Incorrect syntax near '@topCount'.这个问题要怎么解决

解决方案 »

  1.   

    输出参数形式
    用SP_EXECUTESQL执行
      

  2.   

    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql=N'select top +ltrim(@topCount)+' * from tb_company'
    exec sp_executesql @sql
      

  3.   

    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql=N'select top '+@topCount+' * from tb_company'
    exec sp_executesql @sql
      

  4.   

    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql='select top '+@topCount+' * from tb_company'
    exec (@sql)
      

  5.   

    set @sql=N'select top '+@topCount+' * from tb_company'
      

  6.   

    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql=N'select top '+ltrim(@topCount)+' * from tb_company'
    exec sp_executesql @sql
      

  7.   

    --忘記轉換
    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql=N'select top '+ltrim(@topCount)+' * from tb_company'
    exec sp_executesql @sql
      

  8.   

    declare @topCount int
    select @topCount=10declare @sql nvarchar(400)set @sql=N'select top '+LTRIM(@topCount)+' * from tb_company'
    exec sp_executesql @sql
      

  9.   

    晕  上面的@topCount 是int的转换下
    set @sql=N'select top '+ltrim(@topCount)+' * from tb_company'