【发布时间】:2017-09-03 14:00:23
【问题描述】:
为什么存储过程不能与Select、Where和Having一起使用?
我知道函数可以达到目的 - 存储过程无法在 select 中执行的原因是什么?
博客回答您可以使用 UDF。了解我们可以使用 UDF 并且我们正在使用。 需要一个关于存储过程的正当理由。
【问题讨论】:
-
你不应该把英文中的每个单词都大写......
-
好的,先生,请记住
-
这是语法和sql规范。 IMO,您的问题无效
-
这是一个逻辑限制,真的。 SQL 是一种声明性语言,而存储过程(显然)是过程性的。如果你想在
select语句中调用一个存储过程,它应该去哪里?什么时候应该执行?每个输出行一次?每个语句一次? SQL 规范中没有任何内容对此进行定义。无论如何都不需要,因为大多数数据库反而在 SQL 之上放置了一个程序“层”——例如在 oracle 中,您有 PL/SQL,它是 在 SQL 之上的过程扩展。
标签: sql sql-server oracle sql-server-2008 sql-server-2005