在SSMS 2208中,标识符“ Lookup”被涂成粉红色,就好像它是一个函数(与“ Power”或“ Convert”相同)。为什么?
COUNTDISTINCT
,COUNTROWS
并且RUNNINGVALUE
应该以相同的方式工作。
在SSMS 2208中,标识符“ Lookup”被涂成粉红色,就好像它是一个函数(与“ Power”或“ Convert”相同)。为什么?
COUNTDISTINCT
,COUNTROWS
并且RUNNINGVALUE
应该以相同的方式工作。
Answers:
起初我以为它来自Sybase(当然是SQL Server的发源地),它具有查找功能,但这与PowerBuilder有关。然后我检查了SQL Server 2000,在查询分析器中它没有显示为粉红色...
...如果它是Sybase遗留下来的,我希望它一直在用颜色编码的单词列表中。我想语法文件可能会被更新,并且在2000年被“错误地”省略了,但我对此表示怀疑。它很可能是彩色的,因为它在T-SQL语言服务中被列为将来的兼容性单词,或者由于预期被使用而被扔到语言服务中。(我正在等待对此的正式确认,我将尽我所能。)
其他一些有趣的例子(我在2008年的Connect上抱怨其中的一些例子,但由于无法解决而被关闭),这些词也被高亮地出现在您未引用的列表中:
Domains
以绿色点亮Description
亮蓝色Server
亮蓝色Instead
亮蓝色RC2
并RC4
以蓝色点亮当时我没有捕捉到Lookup
或Instead
示例,但我敢肯定还有其他示例。尽管我猜测您正在查看的文档不是最新的,但可能是最新的。至少INSTEAD
应列入该列表,因为它现在是T-SQL的一部分(因为引入了INSTEAD OF触发器)。我敢打赌,至少为SQL Server 2012添加了20个其他关键字,但这些关键字也不在该列表中。快速扫描也有一些明显的例外,应该是有:OFFSET
,IIF
,FORMAT
,等。
您可能会发现另一个有趣的例子。尝试将类似INSTEAD
字符串的单词放在一行中。这可以很好地运行,但是看起来却不是这样:
SELECT 'foo
INSTEAD
';
我可能已经针对Management Studio的语法突出显示提出了许多其他错误并发表了评论;它当然不是完美的。我感谢您想知道为什么,但我们可能最终找不到答案。从许多这些Connect项目中可以看到,它们通常忽略/推迟它们,或者在没有太多解释的情况下对其进行修复。
INSTEAD OF UPDATE
。但这不是保留字……