SQL SERVER 游标 16924报错

关于cursor的简单有关问题

关于cursor的简单问题, 如果建立cursor在两个字段上,而对一个变量赋值,会抱错么? 
比如说: 
declare   @id   int 
create   cur1   cursor 
for   select   id,name   from   student 
open   cur1 
fetch   next   from   cur1   into   @id       /*   in   cur1   there   are   two   column,   then   fetch   them   into   only   one   variable,   how   it   will   be?   */ 
close   cur1 
deallocate   cur1

------解决方案--------------------
服务器: 消息 16924,级别 16,状态 1,行 5 
Cursorfetch: 在 INTO 列表中声明的变量数目必须与所选择的列数目匹配。
declare @id int 
create cur1 cursor -- declare cur1 cursor 
for select id,name from student 
open cur1 
fetch next from cur1 into @id /* in cur1 there are two column, then fetch them into only one variable, how it will be? */ 
close cur1 
deallocate cur1 

------解决方案--------------------
create cur1 cursor 应改为 declare cur1 cursor  
数量要对应,确实要一个变量接收,应在声明时只给一个,或用两个字段组合成一个查询字段
第一次FETCH和第二次FETCH NEXT都要取相同数量的字段
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值