2

I recently saw a statement like:

CREATE TABLE #tbl_AR_Data

I wanted to know what is the purpose of the symbol # (NUMBER SIGN, hash, pound sign) in this statement?

  • 5
    The CREATE TABLE documentation is very helpful... msdn.microsoft.com/en-gb/library/ms174979.aspx – Mark Sinkinson Jul 11 '14 at 10:47
  • 1
    Why both the MySQL and SQL Server tags? – Martin Smith Dec 10 '15 at 18:05
  • 3
    I wonder why this question needs a [mysql] tag, a year after the question has been answered and answer accepted. The # sign is not used in mysql temporary table names. What's the point of adding this tag? It only adds confusion. – ypercubeᵀᴹ Dec 10 '15 at 18:41
  • There is no compelling need to do so but this also covers up mysql. It will help future readers. – student Dec 11 '15 at 5:24
11

'#' denotes a temporary table.

This tells SQL Server that this table is a local temporary table. This table is only visible to this session of SQL Server. When I close this session, the table will be automatically dropped.

You can treat this table just like any other table with a few exceptions. The only real major one is that you can't have foreign key constraints on a temporary table.

Temporary tables are available in MySQL version 3.23 onwards. If you use an older version of MySQL than 3.23, you can't use temporary tables, but you can use heap tables.

Read about usage and syntax here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.