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

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

为什么存储过程不能与SelectWhere & Having一起使用?

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

博客正在回答您可以使用 UDF。了解我们可以使用 UDF 并且我们正在使用。 需要存储过程的正当理由。

最佳答案

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

那么,既然 for 程序实现这样的东西真的很复杂,为什么可以在 where 等地方使用它们呢?您没有提供任何正当理由。

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

关于sql - 为什么存储过程不能与 select、where 和 having 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43290748/

相关文章:

sql - 使用数据透视表加快计数 (*)

php - 在 PHP 中回应 MySQL 查询

sql-server - 在sql server中将varchar转换为十六进制

sql - 在 Oracle 中创建一个 View 来显示每个部门的平均工资?

Oracle 基于函数的索引和 CASE 语句

python - 使用 sqlalchemy 将数据加载到 Oracle 数据库时不允许使用“Multi”方法

SQL随机名称生成器不在同一行中插入名字和姓氏

mysql - SQL 查询 reg.ex。匹配

sql - 如何在 SQL Server 2005 开发版中只启用标准版功能?

sql-server - 使 SQL Server 数据库联机