这是一个SQL游标,为什么要在BEGIN和END里面再写一遍fetch next from mycursor into @O_ID,@A_Salary ?

发布网友 发布时间:2022-04-23 02:40

我来回答

4个回答

热心网友 时间:2023-10-12 02:58

fetch next from mycursor into @O_ID,@A_Salary
while(@@fetch_status = 0)
begin
Update OriginSalary set O_Salary=O_Salary+@A_Salary where O_ID=@O_ID
fetch next from mycursor into @O_ID,@A_Salary
end
假设表tempTable
id,text
1,T1
2,T2
3,T3
面代码省略,现在一句一句看fetch next from mycursor into @O_ID,@A_Salary(1)
fetch into 是移动游标提取数据。(1)句就是把第一行两列数据放到@O_ID,@A_Salary中,游标提留在第一行
while(@@fetch_status = 0)
{
--正常来说你要在这里循环提取每行数据,不然不会用到游标这个概念。
Begin end是什么?Begin就是“{”,END就是“}”
说到这了 你说为什么要写在{}里?如果不写,游标只停留在第一行,不是吗?
好比什么呢?就好比
int i=0
while(i<100)
{
i++;这里是i循环,你的问题是提取数据的循环,意思是一样的
}
}

热心网友 时间:2023-10-12 02:58

查询出来的结果如果有多个记录的话,执行完一条update语句后需要返回下一条记录,要重新把游标赋值,不然的话会出现死循环,这条是必须的

热心网友 时间:2023-10-12 02:59

begin end 里是循环,目的是循环取游标

热心网友 时间:2023-10-12 02:59

是指将游标移到下一条并相应操作

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com