ユーザー定義テーブル型変数を使用する

プログラミング SQL Server

SQLServer 2008には、テーブル構造の定義を表す「ユーザー定義テーブル型」というものがあります。

スポンサーリンク

ユーザー定義テーブル型を使ってみる

SQLServer 2008には、テーブル構造の定義を表す「ユーザー定義テーブル型」というものがあります。

ユーザー定義テーブル型の宣言

ユーザー定義テーブル型の宣言は「CREATE TYPEステートメント」を使用します。

以下の例では「make_user_type」という名前のユーザー定義テーブル型を宣言しています。

CREATE TYPE make_user_type AS TABLE ( no int, name varchar(10), age int )

ユーザー定義テーブル型の使用方法

宣言を完了すると通常のデータ型と同じように使用できます。

DECLARE @user_data_type_tbl AS make_user_type

これで「make_user_type型」の「@user_data_type_tbl」という変数が
使用できます。

以下が使用例です。


    --------------------------------------------------------------
    --すにでユーザー定義型を作成していれば削除
    --------------------------------------------------------------
    SELECT name FROM sys.types WHERE name = 'make_user_type'
    IF @@ROWCOUNT <> 0
    BEGIN
        DROP TYPE make_user_type
    END

    --------------------------------------------------------------
    --ユーザー定義型を定義する
    --------------------------------------------------------------
    CREATE TYPE make_user_type AS TABLE ( no int, name varchar(10), age int )

    --------------------------------------------------------------
    --ユーザー定義型の変数を定義する
    --------------------------------------------------------------
    DECLARE @user_data_type_tbl AS make_user_type

    --------------------------------------------------------------
    --データを挿入する
    --------------------------------------------------------------
    INSERT INTO @user_data_type_tbl( no, name, age ) VALUES( 1, '太郎さん', 15 )
    INSERT INTO @user_data_type_tbl( no, name, age ) VALUES( 2, '次郎さん', 18 )
    INSERT INTO @user_data_type_tbl( no, name, age ) VALUES( 3, '三郎さん', 20 )

    --------------------------------------------------------------
    --データを検索する
    --------------------------------------------------------------
    SELECT no, name, age FROM @user_data_type_tbl ORDER BY age

no name age
1 太郎さん 15
2 次郎さん 18
3 三郎さん 20
タイトルとURLをコピーしました