There are several key differences between identity and sequence in SQL Server 2012. Identity is dependent on and a property of a table, while sequence is independent and an object. Identity requires inserting a new record to generate a new ID, while sequence allows directly viewing the next ID. Sequence allows for cycling, caching, and defining a maximum value, which identity does not support.
The main differences between temp tables and table variables are that temp tables are stored in tempdb and can be used by multiple users, while table variables are stored in memory and only available to the current user. Temp tables support all DDL operations like indexes, while table variables only support clustered indexes. Temp tables also support transactions and functions cannot use table variables.