SQL Server

テーブル型を戻り値とする関数の作成方法

2014/02/04

SQLServerでは「ユーザー定義型」と呼ばれる独自のテーブル型をした戻り値を返す関数を作成することができます。

その作り方と使い方を解説します。

SQLServerでテーブル型を戻り値とする関数を作る

SQLServerではINT型やVARCHAR型などを返す関数と同様に
ユーザー定義テーブル型を戻り値とする関数を作成できます。

テーブル型を戻り値とする関数の作成

テーブル型を戻り値とする関数は通常の関数と同様に
CREATE FUNCTIONで作成します。

通常の関数との違いは「RETURNS」に続く部分が

と戻り値が呼び出し元に返したい形の
ユーザー定義テーブル型になっています。

戻り値のテーブルに値をINSERTして返します。
INSERTしない状態で関数を終了すると

となり、エラーで関数が作成できません。
また、最後は「RETURN」で終了している必要が
あります。

呼び出しかた

作成した関数を呼び出すには

のようにFROM句に指定して呼び出します。
テーブルと同じ扱いです。

実行結果は

です。

また、他のテーブルの値をSELECTして挿入することも
可能です。

本来1つしか戻り値を返せない関数もこの方法を利用すれば
複数行の検索結果を返す関数にすることができます。
VIEWを作成するより色々なロジックを組めるので
複雑な処理が可能になります。




-SQL Server
-, ,

Copyright© ソフトウェア開発日記 , 2019 All Rights Reserved.