【发布时间】:2012-02-02 16:04:34
【问题描述】:
在 SQL Server 中,OUTPUT 参数实际上是 INPUT/OUTPUT 参数吗?我假设这是因为即使我们在存储过程定义中为参数指定了OUTPUT 关键字,我们仍然需要在调用存储过程时为该参数提供值。
【问题讨论】:
-
是的,它是 in-out,但您可以轻松地自行测试。
标签: sql-server stored-procedures
在 SQL Server 中,OUTPUT 参数实际上是 INPUT/OUTPUT 参数吗?我假设这是因为即使我们在存储过程定义中为参数指定了OUTPUT 关键字,我们仍然需要在调用存储过程时为该参数提供值。
【问题讨论】:
标签: sql-server stored-procedures
是的,您必须为输出参数提供一个值。
例如,你创建一个这样的存储过程:
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。
【讨论】:
是的,输出参数也是输入参数。
【讨论】:
是的,正如其他人已经回答的那样,它既是 输入又是输出。但如果您不想被强制提供输入参数,您可以在参数声明中轻松设置默认值。
另请参阅此问题:Can I have an optional OUTPUT parameter in a stored procedure?
【讨论】: