There are some major differences between temp tables, table variables and common table expressions (CTEs). Some of the big differences are:
Temp Tables vs. Table Variables
SQL Server does not place locks on table variables when the table variables are used.
Temp tables allow for multiple indexes to be created
Table variables allow a single index the Primary Key to be created when the table variable is declared only. There is an exception to this, that if you can create the index inline, for example by creating a unique constraint inline as shown in the comments. However these indexes (and the table variable in general) will always be assumed to have 1 row in them, no matter how much data is within the table variable.
Temp tables can be created locally (#TableName) or globally (##TableName)
Table variables are destroyed as the batch is completed.
Temp tables can be used throughout multiple batches.
Temp tables can be used to hold the output of a stored procedure (temp tables will get this functionality in SQL Server 2008).
Table variables and Temp Tables vs. CTEs
CTEs are used after the command which creates them.
CTEs can be recursive within a single command (be careful because they can cause an infinite loop).
Table variables and Temp Tables can be used throughout the batch.
The command before the CTE must end with a semi-colon (;).
As Temp tables and table variables are tables you can insert, update and delete the data within the table.
CTEs can not have any indexes created on them, source tables much have indexes created on them.
If you can think of anything that I’ve missed, feel free to post them in the comments.
Doing a code freeze at this time of year can be crucial to keeping your sanity this time of year. Often times the business unit likes to push out last minute changes before the year end. This often means pushing last minute code (which as everyone knows isn’t always perfect) which can lead to unpleasant little phone calls from the business or the NOC in the middle of holiday festivities.
Do your self and your family a favor, push for a code freeze until after the new year. The developers will thank you, the business with hate you (but really what else is new). I like about a three week code freeze (emergency bug fixes are except, but they have to actually be bug fixes, and they have to be an emergency) starting about December 15 ending about January 3 (depending on when the weekends fall).
It can be tough to get a code freeze implemented at first. But after the first year with the code freeze everyone will want to go it the next year.
We’ll I’ve finely gotten around to installing the SQL 2008 November CTP. While walking through the installer I have seen some excellent changes. Not only is the option to change the paths of the data files no longer hidden, there are more than just two options. There are at least 7 paths that you get to specify while installing. The first one is the Shared component directory. This appears to be the base path where all your binarys will be based off of.
Next you get the Instance root directory. This is where the system database files will be based off of, so make sure that you don’t point this to the C drive is you want the system databases on another drive.
A couple of screens later you get to set 6 install paths. The first is the data root directory. This changes the base path for all the others options. The others are the User database folder, user log database folder, tempdb data folder, tempdb log folder, and the backup directory.
This amount of flexability in the installer is a first, and it’s a welcome change. Look for more posts, tips and articles about SQL Server 2008 in the comming weeks and months up till the release.
Register for our webcast featuring Meagan Longoria, Kevin Kline and Denny Cherry as they explore how to make communications clearer, especially during these stressful situations by improving your report visualization techniques.
As Microsoft MVP’s and Partners as well as VMware experts, we are summoned by companies all over the world to fine-tune and problem-solve the most difficult architecture, infrastructure and network challenges.
And sometimes we’re asked to share what we did, at events like Microsoft’s PASS Summit 2015.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.