Over kill.
Since you've already stated that you are working with SQL Server, I can answer that simply, "Yes."
There are two ways to do it. One is to use actual temp tables, and the other is using temp table variables.
How to use temp tables:
CREATE TABLE #tmpMyTable (Field1 int NOT NULL,
Field2 varchar(50) NULL,
Field3 datetime NULL,
...
FieldN int NULL)
Not that different from a normal CREATE TABLE, the difference is the # infront of the table name. That's what makes it a temp table. But there's a catch. Because this method actualy creates a table in the tempdb database, only one can exist at a time. That means two people can't run the same query at the same time (or at least as long as the temp table is in existance - which is based on the connection, or if you call a DROP TABLE.)
Good news there's a solution to this. The answer is to use table variables.
DECLARE @tmpMyTable TABLE (Field1 int NOT NULL,
Field2 varchar(50) NULL,
Field3 datetime NULL,
...
FieldN int NULL)
Now the cool thing about table variables is that they are memory only, so they are fast. The side effect of this is that you don't have collision with other users. And you don't need to DROP TABLE it. The moment the SP is done, just like any other variable, it goes away.
No matter which method you use, you can insert into them, select from them, update them, just like they were any normal, ordinary table in the database.
Tg