为什么存储过程不能与select,where&有

时间:2017-04-08 06:01:54

标签: sql sql-server oracle sql-server-2008 sql-server-2005

为什么存储过程不能与SelectWhere& Having

我理解一个函数可以达到目的 - 存储过程无法在select中执行的原因是什么?

博客回答你可以使用UDF。了解我们可以使用UDF&我们正在使用。 需要有关存储过程的正当理由。

1 个答案:

答案 0 :(得分:6)

最有可能的最大原因是程序可以返回任意数量的结果集并更改数据。它可以没有结果,也可以是100个不同的结果集,0到n行。它还可以取决于您的输入参数。存储过程也会影响基础数据,那么如果您使用存储过程来更改在where子句中使用它的同一个表中的数据,会发生什么?结果集甚至不需要列的名称,因此您无法以任何方式引用它们。

所以,既然程序实现这样的事情真的很复杂,为什么要在其他地方使用它们呢?您没有提供任何有效理由。

函数存在的原因是,您可以将它们用于where子句等。