You commented: not working if oldtable has an identity column.
I think that's your answer. The #newtable gets an identity column from the oldtable automatically. Run the next statements:
create table oldtable (id int not null identity(1,1), v varchar(10) )
select * into #newtable from oldtable
use tempdb
GO
sp_help #newtable
It shows you that #newtable does have the identity column.
If you don't want the identity column, try this at creation of #newtable:
select id + 1 - 1 as nid, v, IDENTITY( int ) as id into #newtable
from oldtable