是否有必要使用#在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临时表?
答案是肯定的 ,因为没有这个前面的#
表不会是临时表,它将独立于所有会话和范围。