sql2k中新增加的Function的sqlbook 的帮助

2016-01-29 16:10 0 1 收藏

sql2k中新增加的Function的sqlbook 的帮助,sql2k中新增加的Function的sqlbook 的帮助

【 tulaoshi.com - SQLServer 】

  /*
从今天起 豆腐 将陆续的从 SQL2k 的帮助中摘取一些帮助 放到 网上 给大家看看
sql2k 真的是增加了很多的功能!有条件的话,大家尽量的 提前升级到sql2k
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 ] ] )

RETURNS scalar_return_data_type

[ WITH < function_option [ [,] ...n] ]

[ AS ]

BEGIN
function_body
RETURN scalar_expression
END

内嵌表值函数

CREATE FUNCTION [ owner_name.] function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )

RETURNS TABLE

[ 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_variable TABLE < 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 可以是 SQL Server 支持的任何标量数据类型(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

指出 SQL Server 加密包含 CREATE FUNCTION 语句文本的系统表列。使用 ENCRYPTION 可以避免将函数作为 SQL Server 复制的一部分发布。

SCHEMABINDING

指定将函数绑定到它所引用的数据库对象。如果函数是用 SCHEMABINDING 选项创建的,则不能更改(使用 ALTER 语句)或除去(使用 DROP 语句)该函数引用的数据库对象。

函数与其所引用对象的绑定关系只有在发生以下两种情况之一时才被解除:

除去了函数。


在未指定 SCHEMABINDING 选项的情况下更改了函数(使用 ALTER 语句)。
只有在满足以下条件时,函数才能绑定到架构:

来源:https://www.tulaoshi.com/n/20160129/1497721.html

延伸阅读
标签: 母乳
六种科学方法帮助增加母乳 母乳不足是不少新妈妈在哺乳期碰到的难题。其实,这当中有不少是因为使用了错误的方法。例如,民间常用猪蹄汤、鲫鱼汤促乳,但原来如果分娩后过早进食这些汤,反而会使初乳过分浓稠,引起排乳不畅。为此,有专家总结了六种比较科学的方法,帮助新妈妈增加母乳。 1.注意饮食、休息和培养对哺乳的信心。 产妇要保持...
标签: PHP
[MYSQL部分] ; Maximum time (in secondes) for connect timeout. -1 means no limimt ; MYSQL数据库连接超时时间,设置为-1则不限制 mysql.connect_timeout = 60 ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and SQL-Erros will be displayed ; 跟踪模式,当跟踪模式开启时(设置为ON),数据...
标签: Web开发
Function (Built-in Object) Function (內置對象) Function is the object from which JavaScript functions are derived. Functions are first-class data types in JavaScript, so they may be assigned to...
例如: 修改(列名前 要有column关键字) ALTER TABLE [USER] ALTER column [NAME] varchar(35) null 新增 ALTER TABLE [USER] ADD [PRICE]     numeric(18, 8) NULL  DEFAULT 0   通过更改、添加、除去列和约...
标签: Web开发
相关阅读文章:CSS3属性选择符介绍 4.7.3 结构伪类(Structural pseudo-classes) CSS 3增加了大量的结构伪类,利用文档结构树来实现表现,从而可以减少页面内class属性和ID属性的定义,使得文档更加简洁。 1. E:root 匹配文档的根元素。在(X)HTML中,根元素就是html元素。例如: :root { border: 1px solid blue; } 在(X)HTML...