SQL中的#符号是什么意思,它如何使用?

70

请问在MS SQL代码中#符号的含义是什么?

我已经尝试了谷歌搜索和StackOverflow搜索,但似乎找不到答案。

我感觉自己像个傻瓜——今天真是倒霉。请帮忙解答。

5个回答

59

它们通常在临时表名前加上前缀。

根据文档....

将局部临时表名以单个井号(#table_name)作为前缀, 并将全局临时表名以双重井号(##table_name)作为前缀。


1
现在最好发布SQL Server 2005/2008的链接,即使信息仍然相同,这样更好吧? - gbn
1
这与通过DECLARE声明的表变量有什么区别? - ryanwebjackson
关于名称后面的标签呢?例如在这里:https://learn.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql?view=sql-server-ver16 选择 ROW_NUMBER() OVER(ORDER BY name ASC) AS Row#, 名称,recovery_model_desc 从sys.databases中选择 - skan
1
在这个例子中,#是名称的一部分,没有特殊含义。 - Ed Guiness

13

井号符号 # 用于前缀临时表过程。单个实例(#)指的是在当前会话期间存在或销毁的临时对象,而双重实例(##)则是全局对象。


11

如果您正在处理SQL Server,其他答案是正确的,很明显您正在处理它。但由于问题标题只提到了SQL,我应该提到,有一些形式的SQL(如MySQL)使用井号作为另一种注释符号。

#This is a comment.

https://dev.mysql.com/doc/refman/5.7/en/comments.html


5
您可能会在使用临时表时看到 # 符号。
SELECT
  *
FROM #myTempTable

2
本地临时表。## 用于全局临时表。 - HLGEM

0

#TEMPTABLE。它实际上是一个仅限于该会话作用域的临时表类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接