TSQL:从另一个存储过程调用存储过程并读取结果

pis*_*hio 31 sql t-sql stored-procedures

我有一个存储过程,以SELECT结尾,返回一个记录集.我可以在另一个存储过程中调用它,如下所示:

EXEC procedure @param
Run Code Online (Sandbox Code Playgroud)

如何获取返回的记录集?谢谢

Ben*_*ein 34

您可以创建临时表然后使用INSERT INTO #MyTable EXEC procedure @param.

这里列出了一些其他技术.


Ken*_*ick 3

AFAIK,你不能。您可能想要做的是将函数用于您的第一个(或两个)过程。函数只能返回一个东西,但可以返回一个表。存储过程可以返回多个结果,但不能返回到其他函数/存储过程。

例如:

CREATE FUNCTION [dbo].[fn_GetSubordinates] (
    @sPersonID VARCHAR(10),
    @nLevels INT
)
RETURNS @tblSubordinates TABLE
(
    Person_Id VARCHAR(10),
    Surname char(25),
    Firstname char(25)
)
AS
BEGIN
    ...
Run Code Online (Sandbox Code Playgroud)