mssql sqlserver 循环语句操作数据的方法分享


摘要:
下文将讲述sql循环语句操作数据的方法
依次举例展示了三种循环方式



方式1:使用while循环处理数据

declare @tmp varchar(100) ---定义临时变量 
create table #tmp(keyId int identity,info varchar(100))  
  ---定义临时表列必须将循环所用列全部定义

declare @i int,    ---起始行
        @imax int ---最大行数

insert #tmp(info) select info from [循环表]  
select @imax =@@rowcount    ---获取当前行
set @i=1   ---定义循环起始行
while @i<=@imax
begin

select @tmp  =info from  #tmp where keyId =@i
print (@tmp)

select @i=@i+1  ---循环列自增
end
drop table #tmp

----------------------------------------------------

方式2:使用游标循环数据


declare @tmp varchar(50)--临时变量,用来保存游标值
declare tmp_cur cursor for --申明游标 为orderNum
select info from [目标表]  ----将数据放入游标tmp_cur中

open tmp_cur --打开游标
fetch next from tmp_cur into @tmp ----开始循环游标变量
while(@@fetch_status=0)---返回被 FETCH  语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
begin
print (@tmp)

/*
  操作数据的sql脚本
*/

fetch next from tmp_cur into @tmp --开始循环游标变量
end
close tmp_cur --关闭游标
deallocate tmp_cur --释放游标