SQL Server中存储过程和函数的区别是什么?

23 浏览
0 Comments

SQL Server中存储过程和函数的区别是什么?

这个问题已经有了答案

SQL Server中的函数与存储过程

我知道存储过程和函数的主要区别,但其中一个区别是函数可以在存储过程中调用,但存储过程不能在函数中调用。

我的问题是为什么我们不能在函数中调用存储过程?

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

函数无法对数据库进行任何更改,但可以读取它们。

存储过程可以对数据库进行任何和所有的更改。

您无法从函数中执行存储过程。但是您可以在存储过程中执行函数。

您可以从函数中执行扩展存储过程。(尽管这并不是一种好的实践)。

0
0 Comments

存储过程可以改变数据,因此调用存储过程的函数的结果可能是不确定的。例如,如果你编写一个存储过程,如果用户一段时间内没有登录就将其设置为非活动状态,并编写一个计算非活动用户的函数,但在此之前调用了存储过程,则在该函数执行时,函数的预期结果会改变。

我也不赞同这种方法,但这就是它的工作方式。注意,存储过程可以具有输出参数,这意味着您可以将其用作函数。因此,如果您想从f1调用p1,则将f1修改为具有输出参数的存储过程。

0