我正在使用公用表表达式在批处理语句中执行某些更新。
是否建议在循环中完成后对DROP表进行DROP,并在下一次传递时重新声明它?我正在将此脚本部署到一个相当未知的环境中,我担心资源利用率,并希望将内存使用量降至最低。
编辑为包含源(这是在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
答案 0 :(得分:1)
@MartinSmith在对该问题的评论中回答了这个问题:
编辑后是一个常见的表格表达式。它基本上就像一个派生表,你不能放弃它,因为它本身并不作为一个表存在。它没有被预先实现到临时表中,只是内联到引用它的查询中