1.游标的特点
2. 声明游标
3.打开游标
4.检索游标
------------------------------------------------------------
例题:用到的表TblTeacher和TblTeacherSalary
----1将工资更新,更新后的金额为原来的工资+奖金。
declare @id int
declare @reward money
declare cur_Reward cursor fast_forward
for select tTId,reward from TblTeacherSalary
open cur_Reward
close cur_Reward
deallocate cur_Reward
select * from TblTeacher
select * from TblTeacherSalary
---------------------------------------------------------------------------------
--2将奖金中的reward设置为工资的0.1倍
declare @sid int
declare @salary money
declare cur_reward2 cursor forward_only
for select tTId from TblTeacherSalary
open cur_reward2
fetch next from cur_reward2 into @sid
while @@FETCH_STATUS=0
begin
end
close cur_reward2
deallocate cur_reward2
select * from TblTeacher
select * from TblTeacherSalary
--------------------------------------------------------------------------------
--
declare @sid int
declare @salary money
declare cur_reward2 cursor forward_only
for select tTId from TblTeacherSalary
open cur_reward2
fetch next from cur_reward2 into @sid
while @@FETCH_STATUS=0
begin
end
close cur_reward2
deallocate cur_reward2
select * from TblTeacher
select * from TblTeacherSalary
--第二题:改TblTeacherSalary,我们把游标写在techar上。
use TestSchool
select * from TblTeacher
select * from TblTeacherSalary
declare @id1 int
declare @salary money
declare cur_Reward1 cursor fast_forward
for select tTId,tTSalary from TblTeacher
open cur_Reward1
close cur_Reward1
deallocate cur_Reward1
--
update TblTeacherSalary set reward=reward-(select tTSalary*0.01 from TblTeacher where TblTeacher.tTId=TblTeacherSalary.tTId)
declare @id1 int
declare @salary money
declare cur_Reward1 cursor fast_forward
for select tTId,tTSalary from TblTeacher
open cur_Reward1
close cur_Reward1
deallocate cur_Reward1
select * from TblTeacher
select * from TblTeacherSalary