Eri*_*ikE 14 sql-server-2008 ssms reserved-word
在 SSMS 2208 中,标识符“Lookup”被涂成粉红色,就好像它是一个函数一样(与“Power”或“Convert”颜色相同)。为什么?
Aar*_*and 14
起初我以为它来自 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 触发器)。我敢打赌,至少有 20 个其他关键字已为 SQL Server 2012 添加但不在该列表中。快速扫描也有一些明显的例外,应该是有:OFFSET
,IIF
,FORMAT
,等。
另一个你可能会觉得有趣的例子;试着把一个词INSTEAD
放在一个字符串中,但放在它自己的行上。这运行良好,但看起来不像:
SELECT 'foo
INSTEAD
';
Run Code Online (Sandbox Code Playgroud)
(这是由@JonSeigel 提交的错误提供的。)
我可能已经针对 Management Studio 的语法突出显示提交了几十个其他错误并对其进行了评论;它当然不是完美的。我很感激您想知道原因,但我们最终可能无法找到。正如您从许多这些 Connect 项目中看到的那样,他们通常会忽略/推迟它们,或者在没有太多解释的情况下修复它们。
归档时间: |
|
查看次数: |
1771 次 |
最近记录: |