如何在定义游标的时候使用动态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
文章来源于:http://darzui.cnblogs.com/archive/2005/12/12/295718.html

posted on 2006-09-09 11:51  zqonline  阅读(362)  评论(0编辑  收藏  举报

导航