我有一个存储过程,它返回两个选择,我在报告中使用它。 第一个选择是以表格格式显示的数据,第二个是要在报告头中显示的元数据,如下所示:
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。
答案 0 :(得分:2)
是的,这是可能的。
唯一可能的问题是TableAdapter
能否从存储过程中提取两个结果集,but there's a very simple work-around for that issue.