为什么存储过程不能与Select
,Where
& Having
?
我理解一个函数可以达到目的 - 存储过程无法在select中执行的原因是什么?
博客回答你可以使用UDF。了解我们可以使用UDF&我们正在使用。 需要有关存储过程的正当理由。
答案 0 :(得分:6)
最有可能的最大原因是程序可以返回任意数量的结果集并更改数据。它可以没有结果,也可以是100个不同的结果集,0到n行。它还可以取决于您的输入参数。存储过程也会影响基础数据,那么如果您使用存储过程来更改在where子句中使用它的同一个表中的数据,会发生什么?结果集甚至不需要列的名称,因此您无法以任何方式引用它们。
所以,既然程序实现这样的事情真的很复杂,为什么要在其他地方使用它们呢?您没有提供任何有效理由。
函数存在的原因是,您可以将它们用于where子句等。