What kind of differences are you looking for? The difference is that the table is stored in tempdb, as opposed to the current database. The same goes for the index. See this below:
use TestDB;
go
if exists (select 1 from tempdb.sys.tables where name like '#MyTempTable%')
begin
drop table #MyTempTable;
end
create table #MyTempTable
(
id int identity(1, 1) not null
);
go
insert into #MyTempTable
default values;
go 100
select *
from #MyTempTable;
create unique nonclustered index IX_MyTempTable
on #MyTempTable (id);
go
select
name,
object_id,
type_desc
from tempdb.sys.tables
where name like '#MyTempTable%';
select
name,
object_id,
index_id,
type_desc
from tempdb.sys.indexes
where name = 'IX_MyTempTable';
You should see something similar to the output above:
name object_id type_desc
-------------------------- ----------- ---------
#MyTempTable________...... -1516322775 USER_TABLE
name object_id index_id type_desc
-------------- ----------- ----------- ---------
IX_MyTempTable -1516322775 2 NONCLUSTERED
What other differences are you looking for? What is the DBAs justification behind the uneasiness of creating an index on a temp table?