I recently saw a statement like:


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 Jul 11, 2014 at 10:47
  • 1
    Why both the MySQL and SQL Server tags? Dec 10, 2015 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. Dec 10, 2015 at 18:41
  • There is no compelling need to do so but this also covers up mysql. It will help future readers. Dec 11, 2015 at 5:24

1 Answer 1


'#' 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.