SQL 标量函数&表值函数

来源:互联网 发布:mysql教程合集 编辑:程序博客网 时间:2024/04/29 21:32

1、表值函数:用户定义表值函数返回 table 数据类型。对于内联表值函数,没有函数主体;表是单个 SELECT 语句的结果集。2、标量函数:标量函数返回一个确定类型的标量值。其返回值类型为除TEXT、NTEXT 、IMAGE、CURSOR、 TIMESTAMP 和TABLE 类型外的其它数据类型。函数体语句定义在BEGIN-END语句内,其中包含了可以返回值的Transact-SQL 命令。3、存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。功能强大,限制少,不能直接引用返回值,用select语句返回记录集内联表值函数,标量函数均为用户自定义函数诸多限制,有许多语句不能使用,许多功能不能实现,可以直接引用返回值,用表变量返回记录集。其中用户定义函数的定义是这样的:Microsoft SQL Server 2000 允许创建用户定义函数。与任何函数一样,用户定义函数是可返回值的例程。根据所返回值的类型,每个用户定义函数可分成以下三个类别: 1、返回可更新数据表的函数 如果用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表格格式结果也可以更新。2、返回不可更新数据表的函数 如果用户定义函数包含不止一个 SELECT 语句,或包含一个不可更新的 SELECT 语句,则该函数返回的表格格式结果也不可更新。3、返回标量值的函数 用户定义函数可以返回标量值。

标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。

标量值函数示例:
CREATE FUNCTION dbo.Foo()
RETURNS int
AS 
BEGIN 
declare @n int
select @n=3
return @n
END

SQL中的函数

在Transact-SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。Transact-SQL 编程语言提供了三种函数: 
一行集函数:行集函数可以在Transact-SQL语句中当作表引用。 
二聚合函数:聚合函数用于对一组值执行计算并返回一个单一的值。 
三标量函数:标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值。

另外:
SQL Server 2000 允许用户创建自定义函数,自定义函数可以有返回值。

自定义函数分为:标量值函数或表值函数

•如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量值函数。 
•如果 RETURNS 子句指定 TABLE,则函数为表值函数。
0 0
原创粉丝点击