Ram*_*ran 0 sql sql-server select-query sql-server-2016
select*from tablename -- without spaces in-between the star symbol
select * from tablename -- Applied spaces in-between the star symbol
Run Code Online (Sandbox Code Playgroud)
这两个查询都在我的Sql-Server-2016查询窗口中工作.有什么区别,我们需要使用哪种情况?为什么Sql server接受这个?
没有区别.与许多编程语言一样,T-SQL是从字符串组成的输入中解析出来的.在解析期间,可以从文本中提取许多不同类型的"事物",例如KEYWORD(例如select和from)和ASTERISK(*).
事实上,这里不需要空格,因为星号字符不能是任何KEYWORD或未转义的IDENTIFIER(例如列或表名)1的一部分,因此没有解析歧义,需要空格才能帮助解决.
1对于IDENTIFIERs,解析器使用单个模式并且后续步骤实际上区分特定枚举列表中的IDENTIFIER实际上是KEYWORD,这并不罕见(不能代表T-SQL).
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |