我们为什么要把#34;#"在myTempTableName前面?

时间:2014-11-07 15:47:00

标签: sql sql-server sql-server-2008

我知道这是一个愚蠢的问题..但我是sql server的新手...... 我在网上找到了语法,我不明白为什么......有人可以解释为什么我们把#34;#"在myTempTableName前面?

IF OBJECT_ID('tempdb..#myTempTableName') IS NOT NULL
BEGIN
     TRUNCATE TABLE #myTempTableName
END

我可以检查临时表是否存在没有'#'在桌子名称前面? 我可以说' TRUNCATE TABLE myTempTableName'而不是TRUNCATE TABLE #myTempTableName?

1 个答案:

答案 0 :(得分:1)

这些是本地临时表,它们是创建它们的进程的私有表。

#mytable是一个临时表,其中mytable是一个具体的表。

  

您可以阅读有关Temporary Tables in SQL Server.

的更多信息      

它们最常用于为中间体提供工作空间   处理批处理或过程中的数据时的结果。他们是   也用于从表值函数传递一个表来传递   存储过程之间的基于表的数据,或者最近在存储过程中   表值参数的形式,从中发送整个只读表   应用程序到SQL Server例程,或传递只读临时   表作为参数。一旦完成使用,它们就会被丢弃   自动。

     

临时表有不同的风格,其中包括   本地临时表(以#开头),全局临时表   (以##开头),持久临时表(前缀为   TempDB ..)和表变量。(从(@)

开始

消息来源:What is the meaning of "#" in front of a table name in TSQL?