从一个存储过程返回60列表到另一个存储过程

时间:2019-07-17 09:38:56

标签: sql sql-server tsql stored-procedures

ALTER PROCEDURE [dbo].[outer_sp]
        @PrmIdUsAD  nchar(128)
        ,@PrmAnnee  smallint
        ,@PrmMois   tinyint
        ,@PrmIdAct  tinyint
AS
BEGIN

DECLARE @DateMin datetime, @DateMax datetime, @idAgence nchar(2), @nomAgence nchar(50);

EXEC inner_sp( @DateMin, @DateMax, @idAgence, @nomAgence)
...
END

inner_sp结尾于(表有60列)

SELECT
ISNULL(nomAgence, '') AS nomAgence,
ISNULL(chemin, '') AS chemin,
...
FROM #temp_arbo_of_4
ORDER BY chemin
END

如何在调用存储过程中检索此输出表? 我知道未设置一些变量,但这超出了问题的范围。

1 个答案:

答案 0 :(得分:1)

我假设您想对结果做进一步处理?如果没有,则无论如何将只返回输出。

如果您想进一步处理,请创建一个具有正确列的临时表

CREATE TABLE #temp
(
  nomAgence {type},
  chemin {type},
  ...  
)

然后使用select into

SELECT INTO #temp
EXEC SelectOFArbo( @DateMin, @DateMax, @idAgence, @nomAgence);

请注意,SQL Server不允许您嵌套这些调用,因此SelectOfArbo无法从另一个proc进行SELECT-INSERT