Procedimiento almacenado de regreso a DataSet en C # .Net

Quiero devolver la tabla virtual desde el procedimiento almacenado y quiero usarla en el conjunto de datos en c # .net. Mi procedimiento es un poco complejo y no puedo encontrar cómo devolver una tabla y establecerla en un conjunto de datos

Aquí está mi procedimiento para modificar:

ALTER PROCEDURE [dbo].[Procedure1] 

    @Start datetime, 
    @Finish datetime,
    @TimeRange time
AS
BEGIN

    SET NOCOUNT ON;

    declare @TimeRanges as TABLE (SessionStart datetime, SessionEnd datetime);

     with TimeRanges as (
  select @Start as StartTime, @Start + @TimeRange as EndTime
  union all
  select StartTime + @TimeRange, EndTime + @TimeRange
    from TimeRanges
    where StartTime < @Finish )
  select StartTime, EndTime, Count( Test.ScenarioID ) as TotalPeaks
    from TimeRanges as TR left outer join
      dbo.Test as Test on TR.StartTime <= Test.SessionStartTime and Test.SessionCloseTime < TR.EndTime
    group by TR.StartTime, TR.EndTime   
END

Respuestas a la pregunta(3)

Su respuesta a la pregunta