開発備忘録&ふと思ったこと開発備忘録&ふと思ったこと読み流してください。システム開発ネタが多いです。Serverでは、ユーザ定義関数と予め組み込まれたシステム関数がサポートされます。今日の開発備忘録は、ユーザ定義関数です。ユーザ定義関数は、もう少し細かく分けることができ、スカラー値関数とテーブル値関数と呼ばれています。機能は、読んで字の如く「スカラー値」を返す関数と、「テーブル値」を返す関数となります。FUNCTION句で関数名を宣言し、RETURNS句で戻り値を宣言し、RETURNで値を返します。違うので具体的に見ていきます。1)スカラー値関数スカラー値関数は、MSDNではスカラー関数と記載されているのスカラー関数が正しいのかもしれません。以外の任意のデータ型を指定できます。多くは、数値(int)だったり名称(varchar)だったりだと思います。句で返す型を定義します。RETURNで定義した型の単一のデータ値を返します。具体的には、以下のような感じです。・複数のステートメントのテーブル値関数で宣言とロジックが少し異なります。データ型の値を返すこの関数は、ビューとストアードプロシージャの中間のようなツールです。ビューに比べると、まず同じようにFROM句に使用できる。ビューよりも高度SQLロジックが組める。ストアードプロシージャに比べると、ストアードプロシージャはFROM句に使用できないので決定的に違います。テーブル値関数は、既存のデータに関してUPDATE句は使用できませんしCREATE句も使用できません。参照用ってことですね。関数内で宣言したRETURNS句テーブルに関してはUPDATEもできます。SQLを書くだけです。この場合、SELECTで抽出したテーブルの定義がそのまま値として返ります。複数の処理で返す値を整えていきます。テーブルAから10行入れて、テーブルBから更に10行追加して、最後に一部の項目を更新するなどなど。以下のように宣言します。