SQL Server 2000 has a datatype called TABLE that supplements what you can do with a TEMP table, and is a much better performer for small amounts of data. The number of records that can be effectively served by storing them in a table datatype will depend on the amount of RAM your server has.
The TABLE datatype offers the following advantages for appropriate amounts of data:
- Records in the TABLE field will be stored in memory, which a TEMP table is included in the TEMPDB database.
- Since TABLE variables offer a defined scope and behave as if they are local, a table variable will disappear whenever the function or stored procedure that created that variable is completed, thus saving memory and improving performance.
- Since TABLE variables don't require that you lock multiple records as a TEMP table does, you get better performance from your database because there are fewer locks to create, manage, and release.
- And finally, a TABLE variable in a stored procedure requires fewer recompilations as data is modified, which improves concurrency and lowers the amount of server resources that must be used.
Experiment with the TABLE datatype and variables, and compare them to TEMP tables and you will find many uses for this feature.
Barrie Sosinsky is president of consulting company Sosinsky and Associates (Medfield MA). He has written extensively on a variety of computer topics. His company specializes in custom software (database and Web related), training and technical documentation.
This was first published in November 2002