一、什么是自定义函数
自定义函数是T-SQL一个语法元素,sql server允许用户自定义自己函数以补充和扩展系统提供内置函数的功能。函数有系统函数和自定义函数。自定义函数接受一系列参数,并返回值给调用者。
用法(都为通过函数返回值来实现):
- 可用于选择赋值
- 可用于过滤规则
- 用于表达式
- 作为检查和默认规则
- 替代表
注意:
- 函数不支持在函数体内使用select、insert、update、delete语句在函数内来对数据表进行操作,即不能将数据返回到客户端或修改数据表,但可以用select来对变量赋值,但存储过程可以。
- 函数可以采用零个或多个输入参数并返回标量值或表
- 函数的输入参数可以是除了timestamp、cursor、table以外的任何数据类型
二、自定义函数的分类
1. 标量函数
2. 多语句表值函数
3. 内嵌表值函数
三、自定义函数的使用
1. 标量函数
语法:
/*创建自定义标量函数语法*/ CREATE FUNCTION function_name ([参数名 参数类型 [=默认值] [ ,...n ] ] ) RETURNS 返回值类型 AS BEGIN function_body RETURN 表达式 END /*调用标量函数,以下介绍一种使用方法*/ DECLARE 参数名 参数类型 SELECT 拥有者名.函数名(参数名,...)
说明:
(1) 标量函数返回 RETURNS 子句中定义的数据类型的单个数据值,在 BEGIN … END 块之间定义了函数体,包含返回值的一系列 Transact-SQL 语句,返回值可以是除了 text、ntext、image、cursor 和timestamp 之外的任何数据类型。
但是,标量函数只能返回标量值,且函数体内不能包含任何非确定性系统函数(即每次使用相同的输入值调用的时候,返回不同的结果集的函数,如@ERROR、CURRENT_USER等)。
(2) 标量函数的调用形式:拥有