Functions中有哪些特性而存储过程中不含?

26 浏览
0 Comments

Functions中有哪些特性而存储过程中不含?

这个问题的答案已在这里回答了

SQL Server中函数 vs 存储过程

1)函数中有哪些特性而存储过程没有?

2)何时应该在SQL中使用函数而不是存储过程?

3)函数相对于存储过程的优势是什么?

大家好,我在谷歌上搜索了Functions和Stored Procedure的差异,但并没有得到Functions相对于Stored Procedure的优点。在Functions中,存储过程也有相同的特性,那么我们为什么要使用Functions呢?

我太混乱了,不知道什么时候应该使用Functions而不是存储过程。

1)何时应该在SQL中使用函数而不是存储过程?

2)函数相对于存储过程的优势是什么?

有人知道,请帮我一下。

admin 更改状态以发布 2023年5月20日
0
0 Comments

函数和存储过程相似,它们都用于存储能够稍后运行的功能,但它们也有很大的不同

我遇到的一些重要的不同:

函数可以在SELECT语句中调用,而过程不能

虽然函数可以像function_name()一样被调用,但过程需要一个显式的CALL关键字:CALL procedure_name([args])

函数可以返回一个值,过程可以返回多个值

过程并不确切地返回值,但可以传递类似引用的参数。然后可以将它们赋值并用作返回值。

常规参数用IN标记为输入,用于返回值的参数标记为OUT为输出。而且你可以有参数同时做两者:例如MySQL文档的例子。

CREATE PROCEDURE citycount (IN country CHAR(3), OUT cities INT)
BEGIN
  SELECT COUNT(*) INTO cities FROM world.city
  WHERE CountryCode = country;
END

另一个区别是,存储过程可以返回表格,而函数不能。(除非你提供一列/多列作为输入)

0