SQL Server中的用户自定义函数

SQL Server中的用户自定义函数

用户自定义函数(UDF:User Defined Functions)的定义

同存储过程类似,用户自定义函数是一组有序的T-SQL语句,UDF被预先优化和编译并且可以作为一个单元来进行调试。UDF和存储过程的主要区别在于返回结果的方式。为了能支持多种不同的返回值,UDF比存储过程有更多的限制。

UDF的两种类型:

1.      返回标量值的UDF

2.      返回表的UDF

函数的确定性:

确定性指的是,返回的结果是确定的;或者说在未改变什么的情况下,使用同一个函数,在同样的条件下,返回的值是不会改变的。

UDF可以是确定性的也可以是非确定性的。

当UDF需要达到确定性的要求时,需要满足的4个条件

1.      函数必须是模式绑定的。这意味着函数所依赖的任何对象会有一个依赖记录,并且在没有删除这个依赖的函数之前都不允许改变这个对象。

2.      函数引用的所有其他函数,无论其是用户定义的还是系统定义的,都必须是确定的。

3.      不能引用在函数外部定义的表(可以使用表变量和临时表,只要它们是在函数作用域内定义的就行)。

4.      不能使用扩展存储过程。

函数确定性的检查:

Select objectproperty(Object_id(‘函数名’), ’IsDeterministic’);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值