为什么存储过程不能与select,where和having一起使用

Pra*_*ina 3 sql sql-server oracle sql-server-2005 sql-server-2008

为什么存储过程不能用Select,Where&Having

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

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

Jam*_*s Z 6

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

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

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