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

公開日: : SQL Server , ,

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

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

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

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

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

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

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

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

呼び出しかた

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

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

実行結果は

です。

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

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

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

関連記事

ISNULLとCOALESCEは動作が異なる

ISNULLとCOALESCEは動作が異なるので注意が必要 とある人が作成したSQLを見ているとC

記事を読む

SQLServerでsp_renameを使ってテーブルの列名を変更する

SQLServerで列名を変更するには sp_renameを使って列名を変更 SQLServ

記事を読む

SQLServer

SQLServerでトリガーを扱ってみる

INSERT、UPADTE、DELETEトリガーを扱ってみる SQLServerにはテーブルに対し

記事を読む

春分の日と秋分の日をSQLで求める計算式

春分の日と秋分の日は毎年違う 春分の日と秋分の日は 祝日としての春分の日・秋分の日は、 前

記事を読む

SQLサーバ

連番中で 「歯抜け」の番号を見つけ出すSQL

テーブル内の連番の歯抜け番号を探す よくある処理でテーブルに設定されている連番の中で 「歯抜け」

記事を読む

テーブルにユニークインデックス(UNIQUE INDEX)を作成する

テーブルにユニークインデックス(UNIQUE INDEX)を作成 すでに作成したテーブルにユニ

記事を読む

SQLServerのエラーコード一覧

SQLServerで発生するエラーコードとその内容を表にしてみました。 量が多いので別のサイトに分

記事を読む

SQLで改行コードを含む項目を取得する

SQLで改行コードを含む項目を検索する Microsoft SQL Server Managemn

記事を読む

SQLでランダムにユニーク(一意)な値(ID)を取得する

ランダムにユニーク(一意)な値(ID)を取得する SQLServerでテーブル内でユニークキーをラ

記事を読む

SQLで存在しない行を生成し固定行数で処理したい時に役立つ方法

帳票データなどで登録されているデータ数に左右されず、 固定行数でデータを取得したい場合があります。

記事を読む

DATENAME関数を使って日付を取得する。

DATENAME関数を使って日付取得 SQLServerでDATEN

SQLを使っていろいろなやり方で年月を抜き出す

いろいろなやり方で年月を抜き出す 数値で年月を管理しているテーブルに

SQLServer
指定した値と同じ場合はNULLを返すNULLIF関数

使いどころがいまいち不明な「NULLIF()」 SQLServerに

SQLServerでテーブルの存在を確認する

データベース内のテーブル情報をから存在を確認する プログラムで動的に

SQLServer上にあるストアドプロシージャーの更新日時を取得する。

ストアドプロシージャーの更新日時を取得する ここ数日間で変更されたS

→もっと見る



PAGE TOP ↑