为什么存储过程不能与Select
、Where
& Having
一起使用?
我理解一个函数可以达到目的 - 为什么存储过程无法在 select 中执行?
博客正在回答您可以使用 UDF。了解我们可以使用 UDF 并且我们正在使用。 需要存储过程的正当理由。
最佳答案
最大的原因很可能是过程可以返回任意数量的结果集并更改数据。它可以没有结果,也可以是 0 到 n 行的 100 个不同的结果集。它还可以取决于您的输入参数。存储过程也会影响底层数据,那么如果您使用一个存储过程来更改您在 where 子句中使用它的同一个表中的数据,会发生什么情况?结果集甚至不需要列名,因此您无法以任何方式引用它们。
那么,既然 for 程序实现这样的东西真的很复杂,为什么可以在 where 等地方使用它们呢?您没有提供任何正当理由。
函数存在的原因是您可以将它们用于 where 子句等。
关于sql - 为什么存储过程不能与 select、where 和 having 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43290748/