用户自定义函数
自定义函数; USER DEFINED FUNCTION
存储过程【PROC】:可以传入参数、传出参数 output、可以返回值,不过该值用于指示成功或失败,而非返回数据
也可以返回结果集,但是在没有将结果集插入到临时某种表(通常是临时表)中以供后面使用的情况下,不能在查询中真正使用他们【返回的结果集不能作为查询使用,如果结果集插入临时表中,临时表可以作为查询中使用】。
自定义函数【UDF】:可以传入参数、但不可以传出参数,输出参数的概念被更为健壮的返回值取代了。
表值函数——>返回一个表
标量值函数——>返回某类型
UDF可以使用内联执行函数,而proc不行,内联执行函数:定义在类体内的成员函数,即该函数体放在类体内。
与存储过程不同,用户自定义函数返回值的目的是提供有意义的数据,而对于存储过程来说,返回值只是说明成功或失败,如果失败,则会提供一些关于失败性质的特定信息
可在查询中内联执行函数(例如,作为select语句的一部分包含它),而使用存储过程则不行
自定义函数包括标量值函数和表值函数两种类型,而表值函数又可分为内联表值函数【inline】和多语句表值函数两种类型
标量值函数 定义语法
create function fun_name
( [ { @参数名称 参数类型 [=默认值] }[,…n] ] )
returns Fun_type
[as]
Begin
fun_body
return return_Val
end
if OBJECT_ID(‘自定义函数’,‘IF’) is not null
Drop function 自定义函数;
go
Fun_type:函数返回的类型,该类型不可以是image、