El procedimiento almacenado devuelve conjuntos de resultados múltiples

Necesito un SP para devolver múltiples conjuntos de resultados. El segundo conjunto de resultados se basaría en una columna del primer conjunto de resultados.

Entonces:

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

¿Cómo devuelvo @ myTable1 y @ myTable2 con mi SP? ¿Es esta sintaxis incluso correcta?

Mis disculpas, todavía soy un novato en SQL ...

EDITAR:

Entonces, recibo un error en la última línea del código a continuación que dice: "Debe declarar la variable 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

Si destaco y ejecuto el código hasta el segundoselect * funciona bien ... cuando resalto el resto, actúa como si la primera variable no existiera ...

EDIT2: Resolví ese problema. Gracias chicos.

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)

Respuestas a la pregunta(2)

Su respuesta a la pregunta