Código SQL:
Ver original
DECLARE @ciclo SMALLINT = 0 ,@v_xp_codigo VARCHAR(MAX) = 0 ,@v_nombre VARCHAR(MAX) = NULL ,@v_ponderacion VARCHAR(MAX) = 0 ,@v_id BIGINT = 0 WHILE @ciclo = 0 BEGIN SELECT TOP 1 @v_xp_codigo = query01.xp_codigo ,@v_nombre = query01.nombre ,@v_ponderacion = query01.Todos ,@v_id = query01.ID FROM ( SELECT xp_codigo , nombre , Todos , ID FROM #temp_segmentacion WITH(NOLOCK) ) AS query01 WHERE query01.ID > @v_id ORDER BY query01.ID ASC -- Termina Ciclo IF @@rowcount=0 BEGIN SET @ciclo=1 --SELECT @ciclo END ELSE -- update BEGIN DECLARE @i_update nvarchar(MAX)=NULL SELECT @i_update = 'UPDATE #temp_segmentacion SET [' +@v_nombre+ '] = '+@v_ponderacion+' WHERE xp_codigo = ' + @v_xp_codigo EXECUTE sp_executesql @i_update END END
alguna forma de optimizar esta consulta o alguna solucion?
muchas gracias por su ayuda.
Saludos