Generate a temp table using Select * INTO #. Once the temp table has been created, execute this statement within the same session (tab in SSMS). The output will have a row per line definition of the table, in column order, that can be used to explicitly declare the temp table.
I've used this in the past when I wanted to generate a temp table manually but do not want to type up the statements, or don't know what the final data types will be. With this, I can simply identify the data I need, insert it using INTO #temp, and then execute this to generate the create statement I need.
I wrote this a few years ago so I'm sure someone can improve on it, but figured it was worth sharing anyway. It may not work for all column data types as I've only included the ones I've needed so far.