1、 用户定义函数可以扩展数据操作的功能,它在概念上类似于一般的程序设计语言中定义的函数。
13.2.2 创建和调用标量函数
标量函数—返回单个数据值的函数;
1、定义标量函数
CREATE FUNCTION [拥有者名.] 函数名
([{@ 参数名[AS]标量数据类型[=default]}[,…n]])
RETURNS 返回值类型
[AS]
BEGIN
函数体
RETURN 标量表达式
END
(1) 同存储过程一样,函数的参数也可以有默认值。
(2) 标量表达式:指定标量函数返回的标量值。
2、 调用标量函数:
当调用标量函数时,必须提供至少由两部分组成的名称:函数拥有者名和函数名。可在任何允许出现表达式的SQL语句中调用标量函数,只要类型一致;
13.2.3 创建和调用内嵌表值函数
1、 创建内嵌表值函数,其语法为:
CREATE FUNCTION [拥有者名.] 函数名
([{@ 参数名[AS]标量数据类型[=default]}[,…n]])
RETURNS 返回变量 TABLE <表定义>
[AS]
BEGIN
函数体
RETURN
END
<表定义>::=({列定义|表约束}[,…n])
2、调用多语句表值函数
多语句表值函数的返回值是一个表,因此对多语句表值函数的使用也是放在SELECT语句的FROM子句中。
13.3 触发器
13.3.1 触发器基本概念
1、 触发器是一种特殊的存储过程,其特殊性在于它不需要由用户来调用,而是当用户对表中的数据进行UPDATE、INSERT或DELETE操作时自动触发执行;
2、 触发器常用于下列场合:
(1) 完成比CHECK的约束更复杂的数据约束;
(2) 为保证
数据库性能而维护的非规范化数据;
(3) 实现复杂的业务规则,可使业务的处理任务自动进行。