SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL Serverの関数(FUNCTION)とは?作成・削除の基本構文と実例を解説

SQL Serverにおける関数(Function)とは、複数のステートメントをひとまとめにし、再利用を目的としてデータベース内に作成されるオブジェクトです。関数はデータベースに保存され、パラメータを受け取ったり、処理結果の値を返したりすることができます。

この記事では、SQL Serverで関数を作成・削除するための構文と具体的なサンプルコードを、初心者にもわかりやすく解説します。

CREATE FUNCTION(関数の作成)

基本構文

SQL Serverで関数を作成するには、以下の構文を使用します。

CREATE FUNCTION [schema_name.] function_name
([@parameter [AS] [type_schema_name.] datatype
[= default] [READONLY]
, @parameter [AS] [type_schema_name.] datatype
[= default] [READONLY]]
)

RETURNS return_datatype

[WITH {ENCRYPTION
| SCHEMABINDING
| RETURNS NULL ON NULL INPUT
| CALLED ON NULL INPUT
| EXECUTE AS Clause]

[AS]

BEGIN

[declaration_section]

executable_section

RETURN return_value

END;

各パラメータの意味:

  1. schema_name: 関数が属するスキーマの名前。
  2. function_name: 関数に割り当てる名前。
  3. @parameter: 関数に渡す1つ以上のパラメータ。
  4. type_schema_name: スキーマのデータ型(存在する場合)。
  5. datatype: @parameter のデータ型。
  6. default: @parameter に割り当てるデフォルト値。
  7. READONLY: @parameter を関数内で上書きできないことを指定する。
  8. return_datatype: 戻り値のデータ型。
  9. ENCRYPTION: 関数のソースコードがシステム内にテキストとして保存されなくなる。
  10. SCHEMABINDING: 関数が参照するオブジェクトが意図せず変更されないことを保証する。
  11. RETURNS NULL ON NULL INPUT: パラメータのいずれかがNULLの場合、関数はNULLを返す。
  12. CALLED ON NULL INPUT: パラメータがNULLであっても関数は実行される。
  13. EXECUTE AS句: 関数を実行する際のセキュリティコンテキストを指定する。
  14. return_value: 関数が返す値。

具体例

CREATE FUNCTION fuNhanvien
(@nhanvien_id INT)

RETURNS VARCHAR(50)

AS

BEGIN

DECLARE @nhanvien_name VARCHAR(50);

IF @nhanvien_id < 10
SET @nhanvien_name = 'Smith';
ELSE
SET @nhanvien_name = 'Lawrence';

RETURN @nhanvien_name;

END;

上記の例では、fuNhanvien という名前の関数を作成しています。この関数はINT型のパラメータ @nhanvien_id を受け取り、RETURNS文によってVARCHAR(50)型の値を返します。

作成した関数は、以下のように呼び出して使用できます。

USE [test]
GO

SELECT dbo.fuNhanvien(8);

GO

DROP FUNCTION(関数の削除)

関数を正常に作成した後、何らかの理由でデータベースからその関数を削除したいケースもあります。そのような場合には DROP FUNCTION を使用します。

基本構文

関数を削除するには、次の構文を使用します。

DROP FUNCTION function_name;

パラメータ:

function_name: 削除したい関数の名前。

具体例

DROP FUNCTION fuNhanvien;

このコマンドを実行することで、データベースから fuNhanvien 関数が削除されます。

  1. 【SQL Server】AVG関数の使い方を徹底解説!基本構文から実用例まで

    本記事では、SQL Serverにおける数値処理関数「AVG」の使い方を、基本構文と具体的な使用例を交えて詳しく解説します。AVG関数の動作を正しく理解し、実務のデータ集計に活かせるようにしましょう。 AVG関数とは AVG関数は、SQL Serverにおいて式の平均値、または選択された行のうち指定した列の平均値を返す集計関数です。なお、NULLの値は自動的に除外され、平均の計算対象には含まれません。 基本構文 平均値を計算するには、SQL ServerでAVG関数を次のように記述します。 SELECT AVG(列名)FROM テーブル名[WHERE 条件]; パラメータの説明: 列名:平均

  2. SQL ServerのFLOOR関数とは?構文と使用例をわかりやすく解説

    この記事では、SQL Serverにおける数値処理関数「FLOOR()」の使い方を、具体的な構文と実行例を交えながら詳しく解説します。例を見ながら学ぶことで、FLOOR関数の動きをしっかりと理解できるでしょう。 FLOOR関数の概要 FLOOR関数は、引数として渡された数値または式の下限値(切り捨て後の値)を返す関数です。つまり、渡された数値以下で最も大きい整数値を返します。 例えば、5.9という数値に対してFLOOR関数を使うと、5.9以下の最大の整数である「5」が返されます。負の数の場合は注意が必要で、-5.9に対しては「-6」が返されます。これは、-6の方が-5.9より小さいためです。