首页 > 解决方案 > 如何为基于集合的方法替换光标?

问题描述

将 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 分钟减去。

标签: sqlsql-servercursordatabase-performancequery-performance

解决方案


推荐阅读