SQLSERVER游标遍历

37 阅读1分钟

--新增TPIE_RECIPEGROUP_DETAIL站点信息 SELECT * FROM dbo.AWDEMO_TEMP UPDATE AWDEMO_TEMP SET TEMP3 = 'AOI-DIEL'

DECLARE @ProcessID VARCHAR(20),@Model VARCHAR(20); DECLARE cursor_loop CURSOR FOR SELECT TEMP1 AS Model,TEMP2 AS ProcessID FROM dbo.AWDEMO_TEMP; OPEN cursor_loop; FETCH NEXT FROM cursor_loop INTO @Model,@ProcessID; WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_loop INTO @Model,@ProcessID; DECLARE @RowCount INT; SELECT @RowCount=COUNT(1) FROM TPIE_RECIPEGROUP_DETAIL WHERE Processid = @ProcessID AND RecipeGroup = @Model IF @RowCount > 0 BEGIN INSERT dbo.TPIE_RECIPEGROUP_DETAIL (RecipeGroup,Processid,StepNo,StageName,Recipe) SELECT TEMP1,TEMP2,T1.MAXStepNo+1,TEMP3,'AOI-03' FROM dbo.AWDEMO_TEMP INNER JOIN ( SELECT MAX(StepNo) AS MAXStepNo,Processid,RecipeGroup FROM dbo.TPIE_RECIPEGROUP_DETAIL WHERE Processid = @ProcessID AND RecipeGroup= @Model GROUP BY Processid,RecipeGroup) T1 ON dbo.AWDEMO_TEMP.TEMP2 = T1.Processid AND dbo.AWDEMO_TEMP.TEMP1 = T1.RecipeGroup WHERE TEMP2 = @ProcessID; END PRINT @ProcessID+'OK'; FETCH NEXT FROM cursor_loop INTO @Model,@ProcessID; END; CLOSE cursor_loop;
DEALLOCATE cursor_loop;