Procedimento armazenado retorna vários conjuntos de resultados

Eu preciso de um SP para retornar vários conjuntos de resultados. O segundo conjunto de resultados seria baseado em uma coluna do primeiro conjunto de resultados.

Assim:

declare @myTable1 table(field0 int,field1 varchar(255))
insert into @myTable1 select top 1 field0, field1 from table1

declare @myTable2 table(field0 int,field3 varchar(255))
insert into @myTable2 
select field0, field3 from table2 
where @myTable1.field0 = @myTable2.field0

Como retornar @ myTable1 e @ myTable2 com meu SP? Essa sintaxe está correta?

Minhas desculpas, eu ainda sou um novato na SQL ...

EDITAR:

Então, estou recebendo um erro na última linha do código abaixo que diz: "É necessário declarar a variável escalar" @ myTable1 ""

declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1 
select top 1 field0, field1 
from someTable1 m
where m.field4 > 6/29/2009

select * from @myTable1
select *
from someTable2 m2
where m2.field0 = @myTable1.field0

Se eu destacar e executar o código até o segundoselect * funciona bem ... quando destaco o resto, ele age como se a primeira variável não existisse ...

EDIT2: Descobri esse problema. Obrigado rapazes.

declare @myTable1 table(field0 int,field1 dateTime)
insert into @myTable1 
select top 1 field0, field1 
from someTable1 m
where m.field4 > 6/29/2009

select * from @myTable1
select *
from someTable2 m2
where m2.field0 = (select field0 from @myTable1)

questionAnswers(2)

yourAnswerToTheQuestion