SQL WHILE 循环中的游标 用例,SQL中实现循环操作
--声明两个应用变量 declare @USERID_ int declare @ORGANISEUNITID_ int --声明一个变量计数用,开发中可以忽略 declare @i int=0 --创建游标 DECLARE Employee_Cursor CURSOR FOR --游标对应的数据表 select organiseunitid,userid from TB_BASE_ORGANISEUNIT --打开游标 OPEN Employee_Cursor --执行对应数据表中的第一行操作,并填充值 FETCH NEXT FROM Employee_Cursor INTO @USERID_,@ORGANISEUNITID_ --- @@fetch_status是MicroSoft SQL SERVER的一个全局变量 --- 其值有以下三种,分别表示三种不同含义:【返回类型integer】 --- 0 FETCH 语句成功 --- 1 FETCH 语句失败或此行不在结果集中 --- 2 被提取的行不存在 --- @@fetch_status值的改变是通过fetch next from实现的 --while判断循环结束条件 WHILE @@FETCH_STATUS = 0 BEGIN --循环体开始 --计数开始 set @i=@i+1 --- ---循环过程中要执行的操作 --- --打印操作结果用于测试 print 'success'+'*'+convert(nvarchar(50), @USERID_)+'*'+convert(nvarchar(50),@ORGANISEUNITID_)+'*'+convert(nvarchar(50),@i) --/循环体结束 --游标进入下一行,并填充变量,改行放在处理操作后面 FETCH NEXT FROM Employee_Cursor INTO @USERID_,@ORGANISEUNITID_ END --关闭,删除游标 CLOSE Employee_Cursor DEALLOCATE Employee_Cursor