複雑なSELECTクエリを取得しました。このクエリから、すべての行をテーブル変数に挿入したいのですが、T-SQLでは許可されていません。
同じように、SELECTINTOまたはINSERTEXECクエリでテーブル変数を使用することはできません。 http://odetocode.com/Articles/365.aspx
簡単な例:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
テーブル変数のデータは、後で別のテーブルに挿入/更新するために使用されます(ほとんどの場合、マイナーな更新を含む同じデータのコピー)。SELECT INTO
これの目標は、適切なテーブルに直接実行するよりも、スクリプトを少し読みやすく、簡単にカスタマイズできるようにすることです。rowcount
はかなり小さく、必要な場合にのみ手動で実行されるため、パフォーマンスは問題になりません。
...または私がそれをすべて間違っているかどうか教えてください。