是否有必要使用#在SQL Server中创build临时表?

在SQL Server中创build临时表之前是否需要使用#

例:

 SELECT column1, column2, someInt, someVarChar INTO ItemBack1 FROM table2 WHERE table2.ID = 7 

对于ItemBack1是否需要使用#符号?

如果没有,那么在创build临时表中使用#什么用?

是。 你需要在表名前添加“#”(散列)来创build临时表。

如果以后不需要表格,请继续并创build它。 临时表格非常像普通表格。 但是,它是在tempdb中创build的。 此外,它只能通过当前会话进行访问,即对于EG:如果其他用户试图访问由您创build的临时表,他将无法这样做。

“##”(双重散列创build“全局”临时表,也可以被其他会话访问。

请参考以下链接了解临时表的基础知识: http : //www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

如果表的内容less于5000行,并且不包含nvarchar(MAX),varbinary(MAX)等数据types,请考虑使用Table Variables。

它们是最快的,就像它们存储在RAM中的其他variables一样。 它们也存储在tempdb中,而不是RAM中 。

 DECLARE @ItemBack1 TABLE ( column1 int, column2 int, someInt int, someVarChar nvarchar(50) ); INSERT INTO @ItemBack1 SELECT column1, column2, someInt, someVarChar FROM table2 WHERE table2.ID = 7; 

表variables的更多信息: http : //odetocode.com/articles/365.aspx

这两个表ItemBack1#ItemBack1之间的区别在于,第一个是永久的(永久的),而另一个是暂时的。

现在,如果再看看你的问题

是否有必要使用#在sql server中创build临时表?

答案是肯定的 ,因为没有这个前面的#表不会是临时表,它将独立于所有会话和范围。