在sp中分配返回值

时间:2016-03-29 10:11:41

标签: sql-server stored-procedures

我有代码:

ALTER PROC sp_get_location 
(
    @partNumber VARCHAR (100),
    @tempVar VARCHAR (100) OUTPUT
)
AS
BEGIN
    SET @tempVar = STUFF((SELECT (', ' + location + ' (' + CAST(quantity AS VARCHAR (100)) + ')') FROM dbo.warehouse where part_number LIKE @partNumber FOR XML PATH ('')), 1, 1, '')
END

我称之为:

    DECLARE @tempVar varchar (100)
    EXEC dbo.sp_get_location @partNUmber = 'pn3', @tempVar
    SELECT @tempVar

但我一直收到这样的错误:

  

消息119,级别15,状态1,行3必须通过参数编号2和   后续参数为' @name = value'。在表格' @name =之后   值'已经使用过,所有后续参数都必须在中传递   表格' @name = value'。

我已经搜索并尝试过在互联网上发布的大量内容,但我无法让代码运行。我做错了什么?

我正在 sql server 2005 中运行

2 个答案:

答案 0 :(得分:3)

DECLARE @tempVar varchar (100)
EXEC dbo.sp_get_location @partNUmber = 'pn3', @tempVar = @tempVar output
SELECT @tempVar

答案 1 :(得分:1)

只需更换一行:

EXEC dbo.sp_get_location @partNUmber = 'pn3', @tempVar

with:

EXEC dbo.sp_get_location @partNUmber = 'pn3', @tempVar = @tempVar OUPUT