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

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

例:

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

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

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

2 Solutions collect form web for “是否有必要使用#在SQL Server中创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临时表?

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

  • 如何find当前的交易水平?
  • 在SQL Server 2008 R2上运行50 MB脚本时出错
  • 将select结果转换为插入脚本
  • 如何获得SQL Server 2008数据库的SQL转储?
  • TSQL:如何将本地时间转换为UTC? (SQL Server 2008)
  • 在SQL Server Management Studio(2005或更高版本)中连接不同的Windows用户
  • SQL Server:对象名称的最大字符长度
  • 在VS 2010 .net 4.0中使用entity framework时出现'datetime2'错误
  • 我如何消除错误3002?
  • ReferentialConstraint中的依赖属性映射到商店生成的列
  • SQL Server 2008 Standard中的“主文件组已满”无任何理由