如何在定义游标的时候使用动态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 @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
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