您的位置:首页 > 数据库

数据库表值函数和标量函数和存储过程之间的区别【鸡蛋】

2012-08-06 15:38 267 查看
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、返回标量值的函数
用户定义函数可以返回标量值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: