**自
1、首先需要乙個測試表資料student
2、普通迴圈
1)迴圈5次來修改學生表資訊
--迴圈遍歷修改記錄--
declare @i int
set @i=0
while @i<5
begin
update student set demo = @i+5 where uid=@i
set @i=@i +1
end--檢視結果--
select * from student
2)執行後的查詢結果
3、游標迴圈(沒有事務)
1)根據學生表實際資料迴圈修改資訊
---游標迴圈遍歷--
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 --釋放游標
endgo
--檢視結果--
select * from student
2)執行後的查詢結果
4、游標迴圈(事務)
1)根據實際迴圈學生表資訊
---游標迴圈遍歷--
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 --提交事務
endelse
begin
rollback tran --回滾事務
endclose order_cursor --關閉游標
deallocate order_cursor --釋放游標
endgo
--檢視結果--
select * from student
2)執行後的查詢結果:
普通迴圈,迭代,遞迴
首先 遞迴和迭代都是迴圈的一種。def demo 0 n n 1 res 0for i in range 1 n 1 res 1return res迭代是函式內某段 實現迴圈,迭代與普通迴圈的區別 迴圈 中參與運算的變數同時是儲存結果的變數,當前儲存的結果作為下一次迴圈計算的初始值。簡單來說就是,利...
增強for迴圈和普通for迴圈的區別
增強for迴圈亦為高階for迴圈。增強for迴圈內部是使用的iterator來遍歷的,只能遍歷陣列和實現了iterable介面的集合。優點是寫法簡便,無需獲得陣列 集合長度,也無需根據索引來訪問元素。缺點是不能在迴圈裡動態的刪除元素和獲取元素下標。任何的增強for迴圈都可以改寫為普通for迴圈。遍歷...
普通for迴圈與增強for迴圈效率對比
開發中經常用到for迴圈,但是到底選擇那乙個效率更高,可能讓有些同學出現糾結,給人感覺好像是增強for迴圈效率高,但是。猜測總是沒法讓人不放心,千猜萬猜還不如,動手做個測試,證明下,測試步驟如下 1 定義乙個物件,data public class car2 用乙個普通for迴圈往list裡增加物件...