David - table variables are stored in memory, if you search in books online under table variables, you will find some help on them. It looks like microsoft would prefer us to use these over temporary tables. See the quote from BOL below:
Use table variables instead of temporary tables, whenever possible. table variables provide the following benefits:
Within its scope, a table variable may be used like a regular table. It may be applied anywhere a table or table expression is used in SELECT, INSERT, UPDATE, and DELETE statements. However, table may not be used in the following statements:
INSERT INTO table_variable EXEC stored_procedure
SELECT select_list INTO table_variable
statements.
table variables are cleaned up automatically at the end of the function, stored procedure, or batch in which they are defined.
Measure twice, cut once