Как заменить курсор для подхода, основанного на множестве? - PullRequest
0 голосов
/ 11 апреля 2019

Что может быть более эффективным способом замены ситуации 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 минуты минус.

...