【发布时间】:2012-04-25 04:40:15
【问题描述】:
我有一个存储过程,它返回两个选择,我在报告中使用它。 第一个选择是以表格格式显示的数据,第二个是要显示在报表头中的元数据,如下所示:
CREATE PROCEDURE dbo. GetReport
@Input INT
AS
BEGIN
--Get #Metadata
-- #Results = f(#Metadata) … compex calculation
SELECT * FROM #Results
SELECT * FROM #Metadata
END
由于 sproc 计算非常密集,我想在一夜之间为一些最常用的 sproc 参数准备报告行作为纯数据(在两个表中:PrecalcResults 和 PrecalcMetadata)。 泡沫我会直接选择预先计算的值或根据参数用sproc计算它们。
出于维护原因,我想使用相同的存储过程来计算以下数据: 1.在报告中显示 2. 存储在 PrecalcResults 和 PrecalcMetadata 中(带有使用的参数)
如果我有单选存储过程,我会在这里描述一种方法: Insert results of a stored procedure into a temporary table
由于我有 multiselect sproc,我想做类似上面的事情,但有两个表。 在 .net 中我会执行 DataSet.Tables[0] 和 DataSet.Tables[1]...,但我想在 tsql 中执行它,以便在日常工作中运行它。
这在 MS SQL 中是否可行?
我必须向自己道歉,从下面的答案中我可以看出我不是很清楚。 我想将此功能实现为纯 TSQL。
【问题讨论】:
-
尝试搜索“多个活动记录集”(又名 MARS)。您需要使用
NextRecordset方法从一个记录集移动到下一个记录集。
标签: sql tsql sql-server-2005 stored-procedures