如何在 sql 中更新数据,避免 while 循环以获得更好的性能

How to update data in sql avoiding while loop for better performance

我在 while 循环(在存储过程中)中更新数据,这严重影响了性能。在更新 table.

时是否有任何替代(最佳)解决方案具有相对更好的性能

我已阅读有关 CTE 的信息,但无法转换为我当前的问题

            WHILE (@Counter <= (SELECT COUNT(id) FROM @TopicsIds))
                 BEGIN
                   SELECT @CurrentTopicId = TopicId
                   FROM @TopicsIds
                   WHERE id = @Counter;
                   UPDATE @Modules
                  SET TopicId = @CurrentTopicId
                 WHERE id = @Counter;

                SET @Counter = @Counter + 1;
                END;
UPDATE m
SET TopicId = t.TopicId
FROM @Modules m
    JOIN @TopicsIds t ON m.Id = t.Id

为什么要使用循环更新,像

一样使用直接更新查询
 update a set a.TopicId = b.TopicId
from @Modules as a
inner join @TopicsIds as b on a.id = b.id