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

公開日: : SQL Server , ,

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

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

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

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

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

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

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

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

呼び出しかた

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

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

実行結果は

です。

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

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

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

SQLサーバ

SQLServerでROW_NUMBER()を使って連番を採番する

ROW_NUMBER()で連番を取得する SQLServerでROW_NUMBER()関数を使うと

記事を読む

SQL Server-登録されているストアドプロシジャーの一覧を取得する

データベースに登録されているストアドプロシジャーの 一覧を取得します。

記事を読む

SQL Server のファイルサイズを圧縮する

データベースファイルのサイズを圧縮する データベースファイル(.mdf)またはトランザクションログ

記事を読む

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

ユーザー定義テーブル型を使ってみる SQLServer 2008には、テーブル構造の定義を表す

記事を読む

SQLServer

テーブルに設定されているインデックスをSQLで検索する

テーブルに設定されているインデックスをSQLで検索 SQLServerでテーブルに設定されてい

記事を読む

ISNULL()関数を使ってSQLでIF文を使わずに条件を分岐する

ISNULLをIF文の代わりに使ってみる SQLでIFを書けばWHERE句の内容を変えて検索できま

記事を読む

SQL Server-ストアドプロシジャーのソースを表示する1

ストアドプロシジャーのソースを表示します。

記事を読む

@@ROWCOUNTで処理した件数を取得する

@@ROWCOUNTは直前に処理した件数を取得するための関数 SQLServerでは実行したSQL

記事を読む

SQLServer

SQLServerで「WITH ROLLUP」を使って小計、総合計を出力する

「WITH ROLLUP」を使って小計、総合計を出力 SQLServerでは「WITH ROLLU

記事を読む

SQL Server-テーブルのプライマリーキー(PK)を取得する

SQL ServerでSQLを使用してプライマリーキー(PK)を取得する必要があったので ちょっと

記事を読む

SQLで指定月のカレンダー作成

ストアドプロシージャでカレンダーを作成する SQLServerでスト

再帰SQLで最大再帰数の指定

再帰SQLを実行すると最大再帰数に達してエラー 先日作成した日付を管

SQLServerのテーブルロック状態を取得するSQL

SQLServerのデッドロックを調査している中で ロックの状態を調

ALTER TABLEでカラムの属性を変更する

ALTER TABLEでカラムの属性を変更する すでに作成されている

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号を取得する SQLServerのバ

→もっと見る



PAGE TOP ↑