如何选择[表1温度] = [子选择1],[表2温度] = [子选择2] FROM [存储过程](Ho

2019-09-16 12:04发布

我有一个存储过程返回两个选择,我在报告中使用。 第一选择是数据以表格形式显示和所述第二是在报告的头,以显示像下面显示的元数据:

CREATE PROCEDURE dbo. GetReport    
@Input INT
AS 
BEGIN          
   --Get #Metadata    
   -- #Results = f(#Metadata) … compex calculation          
   SELECT * FROM #Results    
   SELECT * FROM #Metadata    
END

由于存储过程的计算是相当密集的,我想准备报告行作为明文数据(在两个表:PrecalcResults和PrecalcMetadata)的一些大多采用SPROC参数过夜。 泡沫我会直接选择预先计算vaues或根据参数与存储过程计算它们。

出于维护原因我想使用相同的存储过程来计算,这将是数据:1.显示在报告2被存储在PrecalcResults和PrecalcMetadata(与所使用的参数)

如果我有次选择的存储过程我想办法desctibed这里: 存储过程的结果插入到一个临时表

因为我有多项选择的存储过程,我想这样做,但上面两个表。 在.NET中,我会做DataSet.Tables [0]和DataSet.Tables [1] ...,但我想这样做在TSQL,在日常工作中运行它。

这是即使在MS SQL可能吗?


我必须道歉我自己,从下面的答案我可以看到我也不是很清楚。 我想这样做实现这个功能纯粹TSQL。

Answer 1:

是的,这是可能的。

这是完全正常的,你建议从一个存储过程返回多个结果集。

你唯一潜在的问题是一个的限制TableAdapter能够从存储过程拉两个结果集, 但有一个非常简单的变通该问题。



文章来源: How to SELECT [temp table1] = [subselect 1], [temp table2] = [subselect 2] FROM [Stored Procedure]