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 に答える