如何选择[temp table1] = [subselect 1],[temp table2] = [subselect 2] FROM [Stored Procedure]

时间:2012-04-12 19:18:08

标签: sql tsql sql-server-2005 stored-procedures

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

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

由于sproc计算非常密集,我想将报告行准备为普通数据(在两个表中:PrecalcResults和PrecalcMetadata),以便在一夜之间使用一些主要使用的sproc参数。 Lather我会直接选择预先计算的vaues或根据参数用sproc计算它们。

出于维护原因,我想使用相同的sproc来计算数据: 1.在报告中显示 2.存储在PrecalcResults和PrecalcMetadata中(使用参数)

如果我有单一选择的sproc,我会在这里解决方法: Insert results of a stored procedure into a temporary table

因为我有多选sproc我想做上面的事情,但有两张桌子。 在.net中我会做DataSet.Tables [0]和DataSet.Tables [1] ...,但我想在tsql中做,在日常工作中运行它。

这在MS SQL中是否可行?


我必须自己道歉,从下面的答案我可以看出我不是很清楚。 我想将此功能实现为纯TSQL。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。

It's perfectly fine to return multiple result sets from a single stored procedure as you have suggested.

唯一可能的问题是TableAdapter能否从存储过程中提取两个结果集,but there's a very simple work-around for that issue.

相关问题