首页 > 解决方案 > 如何避免while循环

问题描述

我有一个查询,由于这个查询执行时间正在增加,并且需要时间在 SQL Server 2016 中执行。

SET @Count = (SELECT COUNT(1) FROM #SlabWeight);    

WHILE ( @ID <= @Count )    
BEGIN    
    SELECT  @Weight = CONVERT(VARCHAR(11), weight)    
    FROM    #SlabWeight    
    WHERE   ID = @ID;    

    SET @WeightList += '[' + @Weight + '],';    
    SET @SQL = @SQL + ' ALTER TABLE #TempData ADD ['    
        + @Weight + '] DECIMAL(18,2), [' + @Weight    
        + '_BasedOn] VARCHAR(10)';    
    SET @SelectStatment = @SelectStatment + ' , [' + @Weight + '] , [' + @Weight + '_BasedOn]';    
    SET @ID += 1;    
END;    

谁能告诉我如何避免在此查询中使用 while 循环?

标签: sql-serverloopsstored-procedureswhile-loopquery-optimization

解决方案


推荐阅读