我面临的情况是我需要在另一个存储过程中使用一个存储过程的结果。我的第一个存储过程返回一个表的子集,我想在第二个存储过程中使用它。
在exec dbo.myprcedure param
返回的结果,但我需要到另一个存储过程中捕捉到它。
任何帮助,将不胜感激。
只需以aFUNCTION
或a返回一个表变量,STORED PROCEDURE
然后TABLE VARIABLE
在调用者存储过程中使用该表变量进行进一步处理,或将其作为表变量参数传递给另一个存储过程。
即按如下所示创建一个函数,该函数返回一个表变量。
CREATE PROCEDURE MyProcedureThatReturnsATable()
RETURNS @ReturnTable TABLE
(
-- specify columns returned by the proc here
ID INT NOT NULL,
Name nvarchar(255) NOT NULL
)
AS
BEGIN
.
..
...
--This select returns data
INSERT INTO @ReturnTable
SELECT ID, Name FROM SOME_TABLES
RETURN
END
然后,在父存储过程中,您将执行上述存储过程,并在父存储过程中填充一个TABLE变量,如下所示。
DECLARE @MyParentTableVariable as TABLE (ID INT, Name nvarchar(255))
INSERT INTO @MyParentTableVariable
EXECUTE MyProcedureThatReturnsATable
因此,现在在父存储过程中,MyProcedureThatReturnsATable
表变量中包含来自的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句