用戶自定義函數(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