如何在定义游标的时候使用动态sql语句?

这样写是错的

declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)

set @i = 1
while @i <= 5 
begin
  
set @sql = 'select q' + convert(nvarchar(2), @i+ ' from ImportSurveyInfo'
  
set @i = @i + 1
 
declare cur cursor for exec @sql
 
open cur
 
fetch cur into @qa
 
select @qa
 
close cur
 
deallocate cur
end
应该这样
declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)

set @i = 1
while @i <= 5 
begin
  
set @sql = 'declare cur cursor for 
               select q
' + convert(nvarchar(2), @i+ ' from ImportSurveyInfo'
   
set @i = @i + 1
   
exec(@sql)
 
open cur
 
fetch cur into @qa
 
select @qa
 
close cur
 
deallocate cur
end
posted on 2005-12-12 18:11  David  阅读(2398)  评论(1编辑  收藏  举报