Tengo un procedimiento almacenado que devuelve dos selecciones, que utilizo en un informe. El primero seleccione son los datos que se mostrarán en forma de tabla y el segundo están los metadatos para mostrar en la cabeza informe, al igual mostrados abajo:Cómo SELECCIONAR [temp table1] = [subselect 1], [temp table2] = [subselect 2] FROM [Procedimiento almacenado]
CREATE PROCEDURE dbo. GetReport
@Input INT
AS
BEGIN
--Get #Metadata
-- #Results = f(#Metadata) … compex calculation
SELECT * FROM #Results
SELECT * FROM #Metadata
END
Como el cálculo sproc es bastante intensa, me gusta preparar las líneas del informe como datos sin formato (en dos tablas: PrecalcResults y PrecalcMetadata) para algunos parámetros de sproc utilizados principalmente durante la noche. Espuma seleccionaría directamente los valores precalculados o los calcularía con sproc según los parámetros.
Por razones de mantenimiento me gustaría utilizar el mismo procedimiento almacenado para calcular los datos que serían: 1. no manifestaron en el informe 2. almacenarse en PrecalcResults y PrecalcMetadata (con los parámetros utilizados)
Si yo tendría una función de selección única Me gustaría un enfoque descrito aquí: Insert results of a stored procedure into a temporary table
Como tengo multiprocesamiento sproc me gustaría hacer algo como lo de arriba, pero con dos tablas. En .net, haría DataSet.Tables [0] y DataSet.Tables [1] ..., pero quiero hacerlo en tsql, para ejecutarlo en el trabajo diario.
¿Esto es posible incluso en MS SQL?
Tengo que disculparme, de la respuesta a continuación puedo ver que no estaba muy claro. Me gustaría implementar esta funcionalidad como puro TSQL.
intentar la búsqueda de "varios conjuntos de registros activos" (también conocido como MARS). Tendrá que utilizar el método 'NextRecordset' para pasar de un conjunto de registros al siguiente. – HABO