Sql Server: Temp table vs table variable
Temp table vs table variable. One question that lingers in my mind is; how to decide between using one over the other? I will present some points that I have gathered that could aid in helping you make a decision in picking one over the other:
1. Reseed the index of a table variable is not allowed.
2. We will not be able to explicitly create Indexes on a table variable.
3. Altering the schema of a table variable is not possible
4. Table variables do not have to drop it after usage, they will be automatically cleaned up when they are out of scope.
5. Transactions involving table variables last only for the duration of an update on the table variable. Therefore, table variables require less locking and logging resources. They are not affected by transaction rollbacks.
6. Table variables contribute to more efficient Query Processing.
7. CHECK constraints, DEFAULT values and computed columns in the table type declaration cannot call user-defined functions.
8. The table declaration includes column definitions, names, data types, and constraints. The only constraint types allowed are PRIMARY KEY, UNIQUE, NULL, and CHECK.
Table variables will offer best performance when the data size is small and the . The next time you have to make a choice, choose wisely between the two and make a wise choice for the usage to derive optimal performance from your queries.
1. Table (Transact SQL) – Microsoft SQL Server