【问题标题】:Stored procedure's output parameters in SQL ServerSQL Server 中存储过程的输出参数
【发布时间】:2012-02-02 16:04:34
【问题描述】:

在 SQL Server 中,OUTPUT 参数实际上是 INPUT/OUTPUT 参数吗?我假设这是因为即使我们在存储过程定义中为参数指定了OUTPUT 关键字,我们仍然需要在调用存储过程时为该参数提供值。

【问题讨论】:

  • 是的,它是 in-out,但您可以轻松地自行测试。

标签: sql-server stored-procedures


【解决方案1】:

是的,您必须为输出参数提供一个值。

例如,你创建一个这样的存储过程:

CREATE PROC sales_for_type @type VARCHAR(55), @total_sales INT OUTPUT
AS
SELECT SUM(qty) FROM sales a, titles b
WHERE
a.title_id = b.title_id
and
b.type = @type

然后你这样称呼它:

DECLARE @total_sales_business int
EXEC sales_for_type business, @total_sales=@total_sales_business OUTPUT

检查this article

【讨论】:

  • 我假设当我们通过“EXEC sales_for_type business, @total_sales=@total_sales_business OUTPUT”调用sales_for_type 时,传递给@total_sales 的值为Null?!无论如何,谢谢你们的帮助
【解决方案2】:

是的,输出参数也是输入参数。

【讨论】:

    【解决方案3】:

    是的,正如其他人已经回答的那样,它既是 输入又是输出。但如果您不想被强制提供输入参数,您可以在参数声明中轻松设置默认值
    另请参阅此问题:Can I have an optional OUTPUT parameter in a stored procedure?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多