There is not so much difference between table variable and temp table. Both are using for capturing data temporary .Both are getting stored in tempdb.On Temp table we can have multiple index but in table variable we can have only one index which depends on primary key.Global temp table (type of temp table) can be accessed by multiple session but table variable is for current scope only.