首页 > 解决方案 > 将 60 列表从一个存储过程返回到另一个

问题描述

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

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

标签: sqlsql-servertsqlstored-procedures

解决方案


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

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

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

然后使用选择进入

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

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


推荐阅读