<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
http://www.asp888.net豆腐技术站
*/
CREATE Function
创建用户定义函数,它是返回值的已保存的Transact- sql例程。用户定义函数不能用于执行一组修改全局状态的
操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过EXECUTE语句执行。
用户定义函数用ALTER Function修改,用DROP Function除去。
语法
标量函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNSscalar_return_data_type
[WITH< Function_option>[[,]...n]]
[AS]
BEGIN
Function_body
RETURNscalar_expression
END
内嵌表值函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNSTABLE
[WITH< Function_option>[[,]...n]]
[AS]
RETURN[(]select-stmt[)]
多语句表值函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNS@return_variableTABLE<table_type_definition>
[WITH< Function_option>[[,]...n]]
[AS]
BEGIN
Function_body
RETURN
END
< Function_option>::=
{ENCRYPTION|SCHEMABINDING}
<table_type_definition>::=
({column_definition|table_constraint}[,...n])
参数
owner_name
拥有该用户定义函数的用户ID的名称。owner_name必须是现有的用户ID。
Function_name
用户定义函数的名称。函数名称必须符合标识符的规则,对其所有者来说,该名称在数据库中必须是唯一的。
@parameter_name
用户定义函数的参数。CREATE Function语句中可以声明一个或多个参数。函数最多可以有1,024个参数。函数执行时每
个已声明参数的值必须由用户指定,除非该参数的默认值已经定义。如果函数的参数有默认值,在调用该函数时必须指
定"default"关键字才能获得默认值。这种行为不同于存储过程中有默认值的参数,在存储过程中省略参数也意味着使用默
认值。
使用@符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个函数的参数仅用于该函数本身;相同
的参数名称可以用在其它函数中。参数只能代替常量;而不能用于代替表名、列名或其它数据库对象的名称。
scalar_parameter_data_type
参数的数据类型。所有标量数据类型(包括bigint和 sql_variant)都可用作用户定义函数的参数。不支持timestamp
数据类型和用户定义数据类型。不能指定非标量类型(例如cursor和table)。
scalar_return_data_type
是标量用户定义函数的返回值。scalar_return_data_type可以是支持的任何标量数据类型(text、ntext、
image和timestamp除外)。
scalar_expression
指定标量函数返回的标量值。
TABLE
指定表值函数的返回值为表。
在内嵌表值函数中,通过单个SELECT语句定义TABLE返回值。内嵌函数没有相关联的返回变量。
在多语句表值函数中,@return_variable是TABLE变量,用于存储和累积应作为函数值返回的行。
Function_body
指定一系列Transact- sql语句定义函数的值,这些语句合在一起不会产生副作用。 Function_body只用于标量函数和多
语句表值函数。
在标量函数中, Function_body是一系列合起来求得标量值的Transact- sql语句。
在多语句表值函数中, Function_body是一系列填充表返回变量的Transact- sql语句。
select-stmt
是定义内嵌表值函数返回值的单个SELECT语句。
ENCRYPTION
指出 sqlServer加密包含CREATE Function语句文本的系统表列。使用ENCRYPTION可以避免将函数作为 sqlServer 1 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
/*
http://www.asp888.net豆腐技术站
*/
CREATE Function
创建用户定义函数,它是返回值的已保存的Transact- sql例程。用户定义函数不能用于执行一组修改全局状态的
操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过EXECUTE语句执行。
用户定义函数用ALTER Function修改,用DROP Function除去。
语法
标量函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNSscalar_return_data_type
[WITH< Function_option>[[,]...n]]
[AS]
BEGIN
Function_body
RETURNscalar_expression
END
内嵌表值函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNSTABLE
[WITH< Function_option>[[,]...n]]
[AS]
RETURN[(]select-stmt[)]
多语句表值函数
CREATE Function[owner_name.] Function_name
([{@parameter_name[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNS@return_variableTABLE<table_type_definition>
[WITH< Function_option>[[,]...n]]
[AS]
BEGIN
Function_body
RETURN
END
< Function_option>::=
{ENCRYPTION|SCHEMABINDING}
<table_type_definition>::=
({column_definition|table_constraint}[,...n])
参数
owner_name
拥有该用户定义函数的用户ID的名称。owner_name必须是现有的用户ID。
Function_name
用户定义函数的名称。函数名称必须符合标识符的规则,对其所有者来说,该名称在数据库中必须是唯一的。
@parameter_name
用户定义函数的参数。CREATE Function语句中可以声明一个或多个参数。函数最多可以有1,024个参数。函数执行时每
个已声明参数的值必须由用户指定,除非该参数的默认值已经定义。如果函数的参数有默认值,在调用该函数时必须指
定"default"关键字才能获得默认值。这种行为不同于存储过程中有默认值的参数,在存储过程中省略参数也意味着使用默
认值。
使用@符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个函数的参数仅用于该函数本身;相同
的参数名称可以用在其它函数中。参数只能代替常量;而不能用于代替表名、列名或其它数据库对象的名称。
scalar_parameter_data_type
参数的数据类型。所有标量数据类型(包括bigint和 sql_variant)都可用作用户定义函数的参数。不支持timestamp
数据类型和用户定义数据类型。不能指定非标量类型(例如cursor和table)。
scalar_return_data_type
是标量用户定义函数的返回值。scalar_return_data_type可以是支持的任何标量数据类型(text、ntext、
image和timestamp除外)。
scalar_expression
指定标量函数返回的标量值。
TABLE
指定表值函数的返回值为表。
在内嵌表值函数中,通过单个SELECT语句定义TABLE返回值。内嵌函数没有相关联的返回变量。
在多语句表值函数中,@return_variable是TABLE变量,用于存储和累积应作为函数值返回的行。
Function_body
指定一系列Transact- sql语句定义函数的值,这些语句合在一起不会产生副作用。 Function_body只用于标量函数和多
语句表值函数。
在标量函数中, Function_body是一系列合起来求得标量值的Transact- sql语句。
在多语句表值函数中, Function_body是一系列填充表返回变量的Transact- sql语句。
select-stmt
是定义内嵌表值函数返回值的单个SELECT语句。
ENCRYPTION
指出 sqlServer加密包含CREATE Function语句文本的系统表列。使用ENCRYPTION可以避免将函数作为 sqlServer 1 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>