ibeautiful
2022-09-17 15:11:14
CREATE PROCEDURE PK_SalaryAddASdeclare @O_ID nvarchar(20),@A_Salary floatdeclare mycursor cursor for select O_ID,A_Salary from AddSalaryopen mycursorfetch next from mycursor into @O_ID,@A_Salarywhile(@@fetch_status = 0)beginUpdate OriginSalary set O_Salary=O_Salary+@A_Salary where O_ID=@O_IDfetch next from mycursor into @O_ID,@A_Salaryendclose mycursordeallocate mycursorGO
3 回答

慕容3067478
TA貢獻1773條經驗 獲得超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
假設表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循環,你的問題是提取數據的循環,意思是一樣的
}
}
添加回答
舉報
0/150
提交
取消