如何解决EXEC存储过程输出到插入操作中的变量
我有以下存储过程:
Create Procedure spValueInsert
(@Param3 varchar(50) OUTPUT)
AS
BEGIN
SELECT TOP 1 uID FROM Table2
END
然后在另一个存储过程中,我具有以下语法:
Create Procedure spMainProc
(@Col1 varchar(50),@Col2 varchar(50))
AS
BEGIN
INSERT INTO TABLE1(Col1,Col2,Col3)VALUES(@Col1,@Col2,XXX)
END
对于Col3
,我想添加spValueInsert
的结果。我该怎么办?
我正在尝试以下语法,但是它不起作用。
DECLARE @OutputParameter varchar(50),@ReturnValue int
EXEC @ReturnValue = spValueInsert @OutputParameter OUTPUT
INSERT INTO Table1(Col1,Col3)VALUES (@Col1,@OutputParameter)
请告知。结果的数据类型为VARCHAR(50)
。
谢谢。
解决方法
您需要在第一个过程中为输出参数分配一个值:
public class SelectParameters
{
public string Text { get; set; }
public string Value { get; set;}
public List<string> Units { get; set; } = new List<string>();
}
请注意,即使没有CREATE PROCEDURE spValueInsert (
@uID varchar(50) OUTPUT
)
AS
BEGIN
SELECT TOP 1 @uID = uID
FROM Table2
-- ORDER BY uID
END
CREATE PROCEDURE spMainProc (
@Col1 varchar(50),@Col2 varchar(50)
)
AS
BEGIN
DECLARE
@uID varchar(50),@ReturnValue int
EXEC @ReturnValue = spValueInsert @uID OUTPUT
IF @ReturnValue <> 0 RETURN @ReturnValue
INSERT INTO Table1(Col1,Col2,Col3)
VALUES (@Col1,@Col2,@uID)
END
,输出参数的值也将是SELECT TOP 1 @uID = uID ...
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。