sql儲存過程 游標 迴圈表

2021-05-11 10:14:39 字數 881 閱讀 5283

--游標例項  利用游標迴圈表 根據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

儲存過程,游標,迴圈,臨時表

create procedure hr attabn qry2 d date nvarchar 10 null,deptno nvarchar 1000 null as begin declare sql nvarchar 1000 建立臨時表 create table mytemptable de...

SQL 儲存過程,游標

if exists select from sysobjects where id object id proc fetch all 事先刪除儲存過程 drop procedure proc fetch all gocreate procedure proc fetch all as 當 set n...

儲存過程 游標巢狀迴圈

alterprocedure dbo asdeclare startnum nvarchar 255 declare endnum nvarchar 255 declare insurancetype nvarchar 255 declare company id nvarchar 255 decl...