【问题标题】:Return a single value and multiple OUT parameter in Stored Procedure在存储过程中返回单个值和多个 OUT 参数
【发布时间】:2023-03-14 02:29:02
【问题描述】:

我读了一篇关于存储过程的文章说:

存储过程可以返回单个值,例如数字或文本值或结果集

我很困惑,因为如果我们声明多个 OUT 参数,我们可以有多个输出但它说我们只能有一个值?

编辑:

这是The Article

【问题讨论】:

  • MySQL 还是 SQL Server?它们完全不同。
  • 除了您正在使用的实际 DBMS 的标签之外,请添加指向您引用的文章的链接。
  • @Larnu 在引用的文章中,确实读作“存储过程可以返回单个值s”。 (砰!)
  • @MehSar 那是一篇写得很草率的文章。我会忽略它。
  • 非常有帮助的@MehSar。老实说,当您想知道语法、对象或函数等如何工作时,它应该是您的第一站。 SQL Server 的文档由 Microsoft 和社区共同维护,因此一直在改进。

标签: sql sql-server database stored-procedures


【解决方案1】:

在 SQL Server 中,存储过程实际上可以返回一个值——总是一个整数。这通常是一个状态值,与output 参数完全不同。

所以你可以拥有:

execute @retval = usp_myproc @x1 output, @x2 output;

返回的值一般不是数据,而是状态。

【讨论】:

  • 我不认为 OP 引用的未引用文章意味着 RETURN 值,因为 RETURN 无法返回基于字符串的数据类型或结果集。如果文章的意思是RETURN,那就大错特错了。
【解决方案2】:

这种说法并不完全正确。

将数据从过程返回到调用程序有三种方式:结果集、输出参数和返回码。

Return Data from a Stored Procedure

此链接将引导您了解这 3 种方法。

【讨论】:

  • 那不准确或没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多