Difference between Temporary table and Table variable

 

Temporary Table

Table Variable

Syntax- create table #temp

 Syntax- Declare @tablename Table

It support DDL operation :-like drop, create, alter etc.

 It doesn’t support DDL operation.

It participate the explicitly transactions defined by the user.

 It doesn’t participate in the explicit transactions defined by the user.

It doesn’t allowed in UDF 

 It can be used in user defined functions

It support adding indexes explicitly after table creation.

 It doesn’t adding indexes explicitly.