sql server游标使用中的问题,出现“必须声明标量变量”错误提示。谢谢

2024-12-26 08:02:34
推荐回答(3个)
回答1:

declare cur cursor dynamic
for
select * from stu
open cur
declare @id int,@name nvarchar(12),@age int,@sex nvarchar(5),@a int
fetch next from cur into @id,@name,@age,@sex,@a
while @@fetch_status = 0 
begin
print cast(@id as nvarchar)+@name+cast(@age as nvarchar)+@sex+cast(@a as nvarchar)
fetch next from cur into @id,@name,@age,@sex,@a 
end
close cur
deallocate cur
go

 

这样吧

 

int类型的不能直接用+号,必须转成字符型才可以输出,还有,你游标有些地方用的不正确,也没关闭和释放, 所以执行一次后,就会报游标未关闭之类的错

回答2:

把GO去掉
select不是输入语句,它是查询语句,你可以select str(id)@name+str(@age)+@sex+str(@a)
这样它会把这个结果计算并以表格形式显示出来,加上str是为了把数字转换为字符,再跟其它字符链接

回答3:

把go放到 print 后面