What are the Differences Between Temporary Table and Table Variable in SQL Server?

Hello everyone,

In this article I will talk about the differences between Temporary Table and Table variable in SQL Server.

The differences between Temporary Table and Table variable in SQL Server are as follows.

  1. The names of Temporary tables begin with the ‘#’ sign and are defined as a temporary table, while the names of Table variables begin with the ‘@’ sign and are defined as a temporary variable.
  2. Temporary tables are generally used for large datasets, while Table variables are only suitable for small datasets.
  3. Table variables are faster than Temporary tables because they are stored in memory and do not require disk I/O. However, when used to store large datasets, Temporary tables can offer better performance.
  4. Temporary tables can be used to store data beforehand and then perform many operations on that data. Table variables, on the other hand, are used to use data only once.
  5. In the Temporary table, it is defined using the CREATE TABLE statement, while the Table variable is defined using the DECLARE statement.
  6. The name of a Temporary table variable can be up to 128 characters, and Table variables can be 116 characters.
  7. Temporary table and Table variables both support unique key, primary key, control constraints, Not Null and default constraints, but Table variables do not support Foreign Key.
  8. We can remove Temporary tables using Drop or Truncate command. We cannot use the Drop or Truncate command for temporal variables.
  9. We can only declare table variables using the Declare statement, but Temporary tables can be created using the Create Table and Select Into commands.
  10. Table variables and Temporary tables support ROLLBACK, but Table variables retain data after ROLLBACK.
  11. Global Temporary tables retain data after creation and can be used in other sessions, even if the database connection is terminated. However, Table variables are destroyed when the session is terminated or the resource is released.

Good luck to everyone in business and life.


Yavuz Selim Kart

I try to explain what I know in software and database. I am still improving myself by doing research on many programming languages. Apart from these, I am also interested in Graphic Design and Wordpress. I also have knowledge about SEO and Social media management. In short, I am a determined person who likes to work hard.

You may also like...

Don`t copy text!