用户自定义函数(UDF,user-defined function)的目的是要封装计算的逻辑处理,有可能须要基于输入的参数,并返回结果。函数
SQL Server 支持两种用户定义函数:标量UDF和表值UDF。标量UDF只返回单个数据值。而表值UDF则返回一个表。使用UDF 的优势之一是能够在查询中集成UDF。对于查询中返回单个值的表达式,在其出现的位置上,也可以使用标量UDF(例如,在SELECT列表中)。表值UDF只能在查询的FROM子句中出现。io
CREATE FUNCTION dbo.fn_ageevent
(function
@birthdate AS DATETIME,date
@eventdate AS DATETIME数据
)查询
RETURNS INTdb
AS参数
BEGIN封装
RETURN
DATEDIFF(year,@birthdate,@eventdate)
- CASE WHEN 100*MONTH(@eventdate)+DAY(@eventdate)
< 100* MONTH(@birthdate) + DAY(@birthdate)
THEN 1 ELSE 0
END
END