Что может быть более эффективным способом замены ситуации RABR на ситуацию, основанную на множестве, где есть процедура, которая получает два параметра, код и дату, а результат вставляется во временную таблицу.
CREATE TABLE #RESULTADO(CODE INT, DATA DATETIME);
DECLARE @CODE
SELECT @CODE = MIN(CODIGO)
FROM TABELACOMDADOS
WHERE CODE <> ''
AND CODE IS NOT NULL
WHILE @CODE IS NOT NULL
BEGIN
INSERT INTO #RESULTADO
EXECUTE PR_PROCESSACALCULO @CODE, @DATA;
-- NEXT VALUE FOR THE LOOP
SELECT @CODE = MIN(CODIGO)
FROM TABELACOMDADOS
WHERE CODE > @CODE
ORDER BY CODE;
END;
Я пытался заменить текущий курсор на цикл while, но общая продолжительность составляет только 2 минуты минус.