为什么在 SQL Server 中已经存在存储过程的情况下还要引入函数?

问题描述 投票:0回答:1

哪些因素导致SQL中函数与存储过程一起引入,函数相比存储过程具体是如何增强数据库操作的灵活性和效率的?

我没有得到确切的解释。

sql sql-server stored-procedures ssms sql-function
1个回答
2
投票

函数可以接受参数并返回标量值或包含零个或多个行和一个或多个列的单个结果集。

这是可组合的。您可以将其集成到 SQL 语句中,以便添加新的计算列或

apply
用于表值函数。

存储过程在允许的语法方面限制较少,但不可组合。

例如您可以使用内置的功能

OBJECT_DEFINITION
如下

SELECT *, 
       OBJECT_DEFINITION(object_id)
FROM sys.procedures

但是无法以类似的方式内联调用

sp_helptext
存储过程

SELECT *, 
       EXEC sp_helptext name /*Not valid syntax*/
FROM sys.procedures
© www.soinside.com 2019 - 2024. All rights reserved.