分かりやすく、使いやすく。

テーブル変数を使用する方法

スポンサーリンク

テーブル変数は実行時のみメモリ上に存在する仮想テーブルです。

一般的なプログラミング言語に用意されている配列のように使用することもできます。

このテーブル変数は通常の変数と同様に処理完了時に自動的に廃棄されるため、データの削除処理やテーブル自体の削除処理は不要です。

  1. テーブル変数を宣言する。
  2. テーブル変数にデータをセットする。
  3. テーブル変数の中身を参照する。
  4. テーブル変数の中身を他の変数に代入する。
  5. テーブル変数の中身を削除する。


テーブル変数を宣言する。

テーブル変数の宣言方法は、通常のテーブルを CREATE する際とほとんど同じですが以下の点に注意が必要です。

  • CREATE の変わりに DECLARE を使用する。
  • テーブル変数名の先頭に @ を付与する。
  • CREATE とは語順が異なる。(CREATE TABLE テーブル名に対して、DECLARE テーブル名 TABLE。)

たとえば MBMBERS というテーブル型の変数を用意するには以下のように宣言します。

tsql(実行可能なサンプルコード)
1
2
3
4
5
6
--テーブル変数(MEMBERS)を宣言
DECLARE @MEMBERS TABLE(
      ID INT
    , NAME VARCHAR(20)
    , PRIMARY KEY (ID)
 ) 

テーブル変数にデータをセットする。

テーブル変数にデータをセットするには、通常のテーブルと同じく INSERT 文を使用します。 上記で宣言した @MEMBERS にデータ登録するサンプル SQL は以下の通りです。

tsql(実行可能なサンプルコード)
1
2
3
4
5
6
7
-- テーブル変数にデーターを挿入
INSERT INTO @MEMBERS VALUES
   (1, 'TARO')
 , (2, 'JIRO')
 , (3, 'SABURO')
 , (4, 'SHIRO')
 , (5, 'GORO'); 

テーブル変数の中身を参照する。

テーブル変数の中身を参照する場合は SELECT を使用します。

tsql(実行可能なサンプルコード)
1
2
-- テーブル変数の内容を確認
SELECT * FROM @MEMBERS  

テーブル変数の中身を他の変数に代入する。

テーブル変数の中身を参照する場合は SELECT 実行時に WHERE 句でデータを一意にする必要があります。

tsql(実行可能なサンプルコード)
1
2
3
4
5
DECLARE @MENBER_NAME VARCHAR(20)
 
SET @MENBER_NAME = (SELECT NAME FROM @MEMBERS WHERE ID = 1)
 
PRINT @MENBER_NAME  

テーブル変数の中身を削除する。

テーブル変数からデータを削除する際は DELETE 文を使用します。

tsql(実行可能なサンプルコード)
1
2
DELETE FROM @MEMBERS
WHERE ID = '3' 
スポンサーリンク