Wednesday, September 22, 2010

[MSSQL] Cursor and While multiple loop sample

Below sample usage of Cursor and While with multiple loop

--fixing missing document reviewer
declare @site_no varchar(10), @siteno varchar(10), @docid as bigint, @sitever as int
DECLARE c1 CURSOR read_only
FOR
select siteno from podetails where pono='HOT 10020567'
OPEN c1
FETCH NEXT FROM c1
INTO @site_no
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT convert(varchar(max),@site_no)
--second loop
update wftransaction set rstatus=2 where site_id in (select site_id from codsite where site_no=@site_no)
DECLARE c2 CURSOR read_only
FOR
select (select site_no from codsite where site_id=wft.site_id) siteno, docid, siteversion from wftransaction wft
where site_id in (select site_id from codsite where site_no=@site_no) and tsk_id=5 and enddatetime is null
OPEN c2
FETCH NEXT FROM c2
INTO @siteno,@docid,@sitever
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT convert(varchar(max),@siteno)+' '+convert(varchar(max),@docid)+' '+convert(varchar(max),@sitever)
exec refreshingWFReview @siteno,@docid,@sitever
FETCH NEXT FROM c2
INTO @siteno,@docid,@sitever
END
CLOSE c2
DEALLOCATE c2
--end secod loop
FETCH NEXT FROM c1
INTO @site_no
END
CLOSE c1
DEALLOCATE c1

No comments:

Post a Comment