T-SQLでテーブル変数にSELECT INTOする 質問する

T-SQLでテーブル変数にSELECT INTOする 質問する

複雑な 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;

おすすめ記事