sql 儲存過程 迴圈

2021-07-06 03:58:53 字數 1124 閱讀 3713

declare @i int

set @i = 0

while @i < 100

begin

update table set column = @i where id_column = @i

set @i = @i + 1

end

--游標例項  利用游標迴圈表 根據userid賦值

alter procedure cursor_eg1

asbegin

declare @a int,@error int

declare @temp varchar(50)--臨時變數,用來儲存游標值

set @a=1 set @error=0

begin tran --申明事務

--申明游標 為userid

declare order_cursor cursor for select userid from usertable

--開啟游標

open order_cursor

while @@fetch_status = 0 --返回被 fetch  語句執行的最後游標的狀態,而不是任何當前被連線開啟的游標的狀態。

begin

--開始迴圈游標變數

fetch next from order_cursor into @temp

--執行sql操作

update usertable set userpwd=username ,chinesename=@a where userid=@temp

set @a=@a+1

set @error=@error+@@error --記錄每次執行sql後 是否正確  0正確

endif @error=0--沒有錯誤 統一提交事務

begin

commit tran--提交

endelse

begin

rollback tran--回滾

endclose order_cursor--關閉游標

deallocate order_cursor--釋放游標

end

sql儲存過程 游標 迴圈表

游標例項 利用游標迴圈表 根據userid賦值 alter procedure cursor eg1 asbegin declare a int,error int declare temp varchar 50 臨時變數,用來儲存游標值 set a 1 set error 0 begin tran...

用儲存過程實現for迴圈執行sql語句

預設情況下,delimiter是分號 在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 delimiter 建立新的函式 create procedu...

SQL儲存過程

什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...