Many people ask: “Where are temporary tables stored in SQL Server?” and that’s a very good question.
There are many cases where we need to create temporary tables in SQL Server and for various reasons.
Such reasons may include:
Breaking the logic of a large and complex SQL Statement in smaller portions of code.
Increase the performance of a SQL query, etc.
Types of Temporary Tables in SQL Server
But what types of temporary tables does SQL Server provide and what is the meaning of each type? Last but not least, where are temporary tables stored and how can we get schema information about them?
There are two types of temporary tables:
Local temporary tables:
Only available to the current connection to the database for the current login
They are dropped when the connection is closed
Global temporary tables:
Available to any connection upon their creation
They are dropped when the last connection using them is closed
Code Example – Local Temporary Table
CREATE TABLE #table_name (
column_name [DATATYPE]);
GO
Code Example – Global Temporary Table
CREATE TABLE ##table_name (
column_name [DATATYPE]);
GO
Strengthen your SQL Server Administration Skills – Enroll to our Online Course!
Via the course, you will learn essential hands-on SQL Server Administration tips on SQL Server maintenance, security, performance, integration, error handling and more. Many live demonstrations and downloadable resources included!
(Lifetime Access/ Live Demos / Downloadable Resources and more!)
So, consider as an example that you have created the following temporary table:
CREATE TABLE #temp_table (
id INT,
name VARCHAR(50) );
GO
Then let’s say you want to find schema information regarding the above table. Where can you find this information in SQL Server?
The answer is that temporary tables (local and global) are stored in the tempDB database.
So, if you want to find schema information for the temporary table named temp_table you can use the following queries:
--Query 1(a): Get the exact name of the temporary table you are looking for
DECLARE @table_name AS VARCHAR(300)
SET @table_name = (SELECT TOP 1 [name]
FROM tempdb..sysobjects
WHERE name LIKE '#temp_table%');
GO
Explanation: When you declare a temporary table, SQL Sever adds some additional characters on its name in order to provide a unique system name for it and then it stores it in tempDB in the sysobjects table.
Even though you can query the temporary table with its logical name, internally, SQL Server knows it with the exact name. To this end, you need to execute the above query for finding the exact name of the temporary table.
--Query 1(b): Get column information for the temporary table
-- by using the sp_columns stored procedure
EXEC tempdb..sp_columns @table_name;
GO
Explanation: The sp_columnsstored procedure returns column information for the specified tables or views that can be queried in the current environment.
Watch the Video with Live Demonstration
Learn essential SQL Server development tips! Enroll to our Online Course!
Sharpen your SQL Server database programming skills via a large set of tips on T-SQL and database development techniques. The course, among other, features over than 30 live demonstrations!
(Lifetime Access, Q&A, Certificate of Completion, downloadable resources and more!)
Artemakis Artemiou is a seasoned Senior Database and AI/Automation Architect with over 20 years of expertise in the IT industry. As a Certified Database, Cloud, and AI professional, he has been recognized as a thought leader, earning the prestigious Microsoft Data Platform MVP title for nine consecutive years (2009-2018). Driven by a passion for simplifying complex topics, Artemakis shares his expertise through articles, online courses, and speaking engagements. He empowers professionals around the globe to excel in Databases, Cloud, AI, Automation, and Software Development. Committed to innovation and education, Artemakis strives to make technology accessible and impactful for everyone.
Views:18,700
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent. Read More
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.