导出 (0) 打印
全部展开

CREATE FUNCTION (Azure SQL Database)

本主题已过时。可以在 SQL 14 Transact-SQL 参考中找到最新版本。

Important重要提示
本主题未经维护。有关最新版本,请参阅 CREATE FUNCTION (Transact-SQL)

创建用户定义函数。这是一个可返回值的已保存 Transact-SQL 例程。用户定义函数不能用于执行修改数据库状态的操作。与系统函数一样,用户定义函数可从查询中调用。标量函数和存储过程一样,可通过使用 EXECUTE 语句执行。

语法约定 (Azure SQL Database)

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 Microsoft Azure SQL Database 中支持的参数和函数类型。

Microsoft Azure SQL Database 不支持通过使用 CREATE FUNCTION 语句来创建 CLR 标量函数和 CLR 表值函数。但 Microsoft Azure SQL Database 却支持创建标量函数、内联表值函数和多语句表值函数,而不必进行任何修改。

对于标量函数和多语句表值函数,function_body 需遵守一般 Microsoft Azure SQL Database Transact-SQL 数据操作语言 (DML) 限制。下面的列表显示了一些 DDL,这些 DDL 需遵守一般的 Microsoft Azure SQL Database Transact-SQL 数据定义语言 (DDL) 限制:

  • table_type_definition

  • column_definition

  • column_constraint

  • computed_column_definition

  • index_option

有关参数和 CREATE FUNCTION 语句的详细信息,请参阅 SQL Server 联机丛书中的 CREATE FUNCTION (Transact-SQL)

显示:
© 2014 Microsoft