---游标循环遍历-- begin declare @a int,@error int declare @temp varchar(50) set @a=1 set @error=0 --申明游标为Uid declare order_cursor cursor for (select [Uid] from Student) --打开游标-- open order_cursor --开始循环游标变量-- fetch next from order_cursor into @temp while @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态-- begin update Student set Age=15+@a,demo=@a where Uid=@temp set @a=@a+1 set @error= @error + @@ERROR --记录每次运行sql后是否正确,0正确 fetch next from order_cursor into @temp --转到下一个游标,没有会死循环 end close order_cursor --关闭游标 deallocate order_cursor --释放游标 end go --查看结果-- select * from Student
---游标循环遍历-- begin declare @a int,@error int declare @temp varchar(50) set @a=1 set @error=0 begin tran --申明事务 --申明游标为Uid declare order_cursor cursor for (select [Uid] from Student) --打开游标-- open order_cursor --开始循环游标变量-- fetch next from order_cursor into @temp while @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态-- begin update Student set Age=20+@a,demo=@a where Uid=@temp set @a=@a+1 set @error= @error + @@ERROR --记录每次运行sql后是否正确,0正确 fetch next from order_cursor into @temp --转到下一个游标 end if @error=0 begin commit tran --提交事务 end else begin rollback tran --回滚事务 end close order_cursor --关闭游标 deallocate order_cursor --释放游标 end go --查看结果-- select * from Student