2012-01-04 181 views
1

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

+0

是的,它是in-out,但你可以很容易地自己测试它。 – 2012-01-04 18:50:51

回答

2

是的,你必须提供输出参数的值。

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

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, @[email protected]_sales_business OUTPUT 

检查this article

+0

我认为,当我们要求通过“EXEC sales_for_type业务,@ TOTAL_SALES = @ total_sales_business输出” sales_for_type,传递给@total_sales值为null?无论如何,谢谢你们的帮助 – user702769 2012-01-04 19:13:30

1

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