SQL循環遍歷數據集

SET ROWCOUNT 0
select * into #rrr from [OA_test].[dbo].[Company_KLFolder]    ----新建臨時表#rrr

declare @KLFGUID uniqueidentifier
declare @CGUID uniqueidentifier
declare @count int
declare @Sequence int


WHILE EXISTS(select [KLFGUID] from #rrr)    ---遍歷臨時表
begin
 
SET ROWCOUNT 1    ---------設置影響行數爲1
  select @KLFGUID=cast([KLFGUID] as varchar(max)),@CGUID=CGUID from #rrr order by [CGUID] desc
  
print  cast(@KLFGUID as varchar(max))
  
print cast(@CGUID as varchar(max))
 
set rowcount 0        ---------設置影響行數  不限制
  select @Sequence = max([KLFSequence]from [OA_test].[dbo].[Company_KLFolder] where  CGUID = @CGUID
  
update Company_KLFolder set [KLFSequence] = (@Sequence+1where [KLFGUID] = @KLFGUID
  
delete from #rrr where [KLFGUID] = @KLFGUID    ------刪除臨時表中遍歷過的本條數據
  end

drop table #rrr   ----刪除臨時表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章