実際に変数(実行時にのみ使用可能)の形式にしたい場合は、TABLE
変数を宣言できます。
DECLARE @variable TABLE (Column1 INT);
INSERT INTO @variable
SELECT Column FROM Table
良い方法はSELECT INTO
で一時テーブルを作成するには、次のようになります。
SELECT Column
INTO #variable
FROM table;
ザ・あなたが任意のクエリで正規表として@variable
または#variable
を使用することができます。
UPDATE table
SET Column = 1
WHERE column IN (SELECT COLUMN FROM @variable)
or
UPDATE table
SET Column = 1
WHERE column IN (SELECT COLUMN FROM #variable)
私はスタイルに参加をお勧めします/希望が:
UPDATE t
SET column = 1
FROM table t
INNER JOIN #variable v on t.column = v.column
私はテーブル変数を使用することはお勧めしませんが、最も重要なものの一つは、パフォーマンスのためにある多数の理由があります。理由。
クエリオプティマイザは、@variable
に多数の行があるシナリオで最適な実行計画が生成されないように、テーブル変数からデータを読み取るときに常に1の見積もりを生成します。あなたが複数の値を扱っているなら、あなたは.......
Declare @t TABLE (Value INT)
INSERT INTO @t (Value)
SELECT column FROM table
ようTABLE VARIABLE
何かを使用する必要があります
アメージング.....ようなものになるだろう変数のいずれかの種類にそれを配置する必要があります。どうもありがとうございます。今は本当に簡単です。 – platinums
には#tmpテーブルのクリーンアップコマンドがあり、リピートクエリーのためにそれをクリアします。私は#tmp存在 - ああドロップ#tmpについてのメッセージを受け取りましたか? – platinums
@プラチナ。 。 。一時テーブルとテーブル変数は、*ストアドプロシージャ*ブロックの終わりに削除されます。 1つのコードブロック内でコードを繰り返し実行する場合は、テーブルを削除する必要があります。 –