Yep, can either do a select into, or, create a table and populate accordingly. Advantage of the second method is you can run the insert as many times as you need.
e.g.
insert my_sysprocesses
select getdate() as rundate,* from sys.sysprocesses
and the table will be :
CREATE TABLE my_sysprocesses(
[ID] int IDENTITY(1,1) ,
[rundate] datetime ,
[spid] smallint ,
[kpid] smallint ,
[blocked] smallint ,
[waittype] binary(2) ,
[waittime] bigint ,
[lastwaittype] nchar(32) ,
[waitresource] nchar(256) ,
[dbid] smallint ,
[uid] smallint ,
[cpu] int ,
[physical_io] bigint ,
[memusage] int ,
[login_time] datetime ,
[last_batch] datetime ,
[ecid] smallint ,
[open_tran] smallint ,
[status] nchar(30) ,
[sid] binary(86) ,
[hostname] nchar(128) ,
[program_name] nchar(128) ,
[hostprocess] nchar(10) ,
[cmd] nchar(16) ,
[nt_domain] nchar(128) ,
[nt_username] nchar(128) ,
[net_address] nchar(12) ,
[net_library] nchar(12) ,
[loginame] nchar(128) ,
[context_info] binary(128) ,
[sql_handle] binary(20) ,
[stmt_start] int ,
[stmt_end] int ,
[request_id] int
)