複雑な SELECT クエリがあり、そのすべての行をテーブル変数に挿入したいのですが、T-SQL ではそれができません。
同様に、SELECT INTO または INSERT EXEC クエリではテーブル変数を使用できません。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
ベストアンサー1
次のようなことを試してください:
DECLARE @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
);
INSERT INTO @userData (name, oldlocation)
SELECT name, location FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30;