如何在我的选择查询中将动态变量@counter用作TOP值

时间:2016-09-27 15:14:36

标签: sql sql-server sql-server-2008

我需要SQL Server 2008中的循环,如下所示:

while @counter < (Select Count(Id) from #Requests)
begin
  exec ApplyData(Select TOP 1 Id 
                 from (select TOP @counter Id from #Requests) T
                 order by Id Desc
                )
  set @counter = @counter + 1
end

它表示在Select查询中使用@counter是错误的(语法错误)。使用它的正确方法是什么?如何修复语法错误?

由于

1 个答案:

答案 0 :(得分:2)

像这样使用

select TOP(@counter)