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 |
