EXEC 存储过程输出到插入操作中的变量
EXEC Stored Procedure Output to Variable in Insert Operation
我有以下存储过程:
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, Col2, Col3)VALUES (@Col1, @Col2, @OutputParameter)
请指教。结果的数据类型是 VARCHAR(50)
.
谢谢。
您需要为第一个过程中的输出参数赋值:
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 ...
,输出参数的值也将是 NULL
。
我有以下存储过程:
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, Col2, Col3)VALUES (@Col1, @Col2, @OutputParameter)
请指教。结果的数据类型是 VARCHAR(50)
.
谢谢。
您需要为第一个过程中的输出参数赋值:
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 ...
,输出参数的值也将是 NULL
。