mysql stored produres while

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

AS

BEGIN

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正确

end

if @error=0--没有错误 统一提交事务

begin

commit tran--提交

end

else

begin

rollback tran--回滚

end

CLOSE order_cursor--关闭游标

DEALLOCATE order_cursor--释放游标

END

你可能感兴趣的:(mysql,error,update,where,160)