Нет, такого индексатора нет.
Однако SQL Server и ADO.NET поддерживают возврат нескольких наборов результатов, выбирая каждую таблицу по очереди.
См. howto в MSDN (как обрабатывать несколько результатов с помощью DataReader в Visual C # .NET).
Итак, в вашей хранимой процедуре:
-- after populating your temp tables:
SELECT * FROM #table1
SELECT * FROM #table2
SELECT * FROM #table3
По сути, после прочтения первогонабор записей, вы вызываете NextResult()
в DataReader, чтобы получить результаты следующего выбора:
while(dr.Read())
{
// process data from #table1
}
dr.NextResult();
while(dr.Read())
{
// process data from #table2
}
dr.NextResult();
while(dr.Read())
{
// process data from #table3
}