CREATE FUNCTION (Windows Azure SQL データベース)
ユーザー定義関数を作成します。これは、保存された Transact-SQL のルーチンで、値を返します。ユーザー定義関数は、データベースの状態を変更するアクションの実行に使用することはできません。ユーザー定義関数は、システム関数と同じように、クエリから起動できます。スカラー関数は、ストアド プロシージャと同様に、EXECUTE ステートメントを使用して実行できます。
構文表記規則 (Windows Azure SQL データベース)
Scalar Functions
CREATE FUNCTION [ schema_name. ] function_name( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type
[ =default ] [ READONLY ] }
[ ,...n ]
]
)
RETURNS return_data_type
[ WITH <function_option> [ ,...n ] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
[ ; ]
Inline Table-Valued Functions
CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type
[ =default ] [ READONLY ] }
[ ,...n ]
]
)
RETURNS TABLE
[ WITH <function_option> [ ,...n ] ]
[ AS ]
RETURN [ ( ] select_stmt [ ) ]
[ ; ]
Multistatement Table-valued Functions
CREATE FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type
[ =default ] [READONLY] }
[ ,...n ]
]
)
RETURNS @return_variable TABLE <table_type_definition>
[ WITH <function_option> [ ,...n ] ]
[ AS ]
BEGIN
function_body
RETURN
END
[ ; ]
Function Options<function_option>::=
{
[ SCHEMABINDING ]
| [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]
| [ EXECUTE_AS_Clause ]
}
Table Type Definitions<table_type_definition>:: = ( { <column_definition> <column_constraint>
| <computed_column_definition> }
[ <table_constraint> ] [ ,...n ]
)<column_definition>::=
{
{ column_name data_type }
[ [ DEFAULT constant_expression ]
[ COLLATE collation_name ] | [ ROWGUIDCOL ]
]
| [ IDENTITY [ (seed , increment ) ] ]
[ <column_constraint> [ ...n ] ]
}
<column_constraint>::=
{
[ NULL | NOT NULL ]
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[ WITH FILLFACTOR =fillfactor
| WITH ( < index_option > [ , ...n ] )
[ ON { filegroup | "default" } ]
| [ CHECK (logical_expression ) ] [ ,...n ]
}
<computed_column_definition>::=column_name AS computed_column_expression<table_constraint>::=
{
{ PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
(column_name [ ASC | DESC ] [ ,...n ] )
[ WITH FILLFACTOR = fillfactor
| WITH ( <index_option> [ , ...n ] )
| [ CHECK (logical_expression ) ] [ ,...n ]
}
<index_option>::=
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS ={ ON | OFF }
}
この構文ダイアグラムでは、Microsoft Windows Azure SQL データベースでサポートされている引数および関数の種類を示します。
Windows Azure SQL データベースでは、CREATE FUNCTION ステートメントを使用した CLR スカラー関数および CLR テーブル値関数の作成はサポートされません。Windows Azure SQL データベースでは、変更を加えない、スカラー関数、インライン テーブル値関数、および複数ステートメントのテーブル値関数の作成がサポートされます。
スカラー関数および複数ステートメントのテーブル値関数の場合、function_body には、一般的な Windows Azure SQL データベースの Transact-SQL データ操作言語 (DML) の制限が適用されます。一般的な Windows Azure SQL データベースの Transact-SQL データ定義言語 (DDL) の制限が適用される DDL を次に示します。
-
table_type_definition
-
column_definition
-
column_constraint
-
computed_column_definition
-
index_option
引数と CREATE FUNCTION ステートメントの詳細については、SQL Server オンライン ブックの「CREATE FUNCTION (Transact-SQL)」を参照してください。