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公司為什麼還要新增...