0

我正在使用公用表表达式在批处理语句中执行一些更新。

是否建议在循环中完成表后删除表并在下一次传递时重新声明它?我正在将此脚本部署到一个相当未知的环境中,我担心资源利用率并希望将内存使用量保持在最低限度。

编辑以包括源(这是在一个while循环内):

WITH UpdatedRecords AS (
    SELECT TOP 50000
           unique_id,
           is_processed
    FROM
          _TempSnapshots
    WHERE
          is_processed = 0
    ORDER BY
          unique_id DESC
)
UPDATE UpdatedRecords 
   SET is_processed = 1
4

1 回答 1

1

@MartinSmith 在对问题的评论中回答了这个问题:

在编辑之后是一个公用表表达式。它基本上就像一个派生表,你不能删除它,因为它本身并不作为一个表存在。它不会预先具体化到临时表中,它只是内联到引用它的查询中

于 2012-12-03T00:58:59.463 回答