分享
 
 
 

ALTERFUNCTION

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

更改先前由CREATE FUNCTION 语句创建的现有用户定义函数,但不会更改权限,也不影响相关的函数、存储过程或触发器。

语法

标量函数

ALTER FUNCTION [ owner_name. ] function_name

( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )

RETURNS scalar_return_data_type

[ WITH [,...n] ]

[ AS ]

BEGIN

function_body

RETURN scalar_expression

END

内嵌表值函数

ALTER FUNCTION [ owner_name. ] function_name

( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )

RETURNS TABLE

[ WITH [ ,...n ] ]

[ AS ]

RETURN [ ( ] select-stmt [ ) ]

多语句表值函数

ALTER FUNCTION [ owner_name. ] function_name

( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )

RETURNS @return_variable TABLE

[ WITH [ ,...n ] ]

[ AS ]

BEGIN

function_body

RETURN

END

::=

{ ENCRYPTION | SCHEMABINDING }

::=

( { column_definition | table_constraint } [ ,...n ] )

参数

owner_name

拥有待更改的用户定义函数的用户 ID 名。owner_name 必须是现有用户 ID。

function_name

是要更改的用户定义函数。函数名称必须符合标识符的规则,对其所有者来说,该名称在数据库中必须是唯一的。

@parameter_name

用户定义函数的参数。可声明一个或多个参数。函数最多可以有 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 语句)。

有关函数绑定到架构所必须满足的条件列表,请参见 CREATE FUNCTION。

注释

不能用 ALTER FUNCTION 将标量值函数更改为表值函数,反之亦然。同样地,也不能用 ALTER FUNCTION 将行内函数更改为多语句函数,反之亦然。

权限

ALTER FUNCTION 权限默认授予 sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员和函数的所有者且不可转让。

函数的所有者对其函数具有 EXECUTE 权限。不过,也可将此权限授予其他用户。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有