我知道这是一个愚蠢的问题..但我是sql server的新手...... 我在网上找到了语法,我不明白为什么......有人可以解释为什么我们把#34;#"在myTempTableName前面?
IF OBJECT_ID('tempdb..#myTempTableName') IS NOT NULL
BEGIN
TRUNCATE TABLE #myTempTableName
END
我可以检查临时表是否存在没有'#'在桌子名称前面? 我可以说' TRUNCATE TABLE myTempTableName'而不是TRUNCATE TABLE #myTempTableName?
答案 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?