3 回答

TA貢獻1773條經(jīng)驗 獲得超3個贊
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
假設(shè)表tempTable
id,text
1,T1
2,T2
3,T3
面代碼省略,現(xiàn)在一句一句看fetch next from mycursor into @O_ID,@A_Salary(1)
fetch into 是移動游標(biāo)提取數(shù)據(jù)。(1)句就是把第一行兩列數(shù)據(jù)放到@O_ID,@A_Salary中,游標(biāo)提留在第一行
while(@@fetch_status = 0)
{
--正常來說你要在這里循環(huán)提取每行數(shù)據(jù),不然不會用到游標(biāo)這個概念。
Begin end是什么?Begin就是“{”,END就是“}”
說到這了 你說為什么要寫在{}里?如果不寫,游標(biāo)只停留在第一行,不是嗎?
好比什么呢?就好比
int i=0
while(i<100)
{
i++;這里是i循環(huán),你的問題是提取數(shù)據(jù)的循環(huán),意思是一樣的
}
}

TA貢獻1815條經(jīng)驗 獲得超13個贊
查詢出來的結(jié)果如果有多個記錄的話,執(zhí)行完一條update語句后需要返回下一條記錄,要重新把游標(biāo)賦值,不然的話會出現(xiàn)死循環(huán),這條是必須的
添加回答
舉報