В SSMS 2208 идентификатор «Lookup» окрашен в ярко-розовый цвет, как если бы он был функцией (такого же цвета, как, скажем, «Power» или «Convert»). Почему?
Я не могу найти его в официальном списке зарезервированных слов . Поиски в Интернете кажутся бесполезными, поскольку существует огромное количество терминов «поиск», которые не имеют никакого отношения к моему вопросу.
COUNTDISTINCT
,COUNTROWS
иRUNNINGVALUE
должны работать так же.Ответы:
Сначала я подумал, что он пришел из Sybase (откуда, конечно, и возник SQL Server), у которого есть функция поиска , но это связано с PowerBuilder. А потом я проверил SQL Server 2000, и он не горит розовым в Query Analyzer ...
... если бы это было наследие от Sybase, я бы ожидал, что он будет в списке слов с цветовой кодировкой. Возможно, я предполагаю, что файл грамматики был обновлен и что он был опущен «по ошибке» в 2000 году, но я сомневаюсь в этом. Гораздо более вероятно, что он окрашен, потому что он указан в языковой службе T-SQL как будущее слово совместимости, или он был брошен в языковую службу в ожидании использования. (Я жду официального подтверждения этого, и я поделюсь, что я могу.)
Некоторые другие забавные примеры ( я жаловался на некоторые из них на Connect еще в 2008 году , но он был закрыт как «Не исправлять») на несоответствующее выделение слов, которых также нет в списке, который вы цитируете:
Domains
загорается зеленымDescription
загорается синим цветомServer
загорается синим цветомInstead
загорается синим цветомRC2
иRC4
загораются синим цветомВ то время я не запечатлел
Lookup
ниInstead
примеров, и я уверен, что есть и другие. Хотя я предполагаю, что документ, который вы просматриваете, не настолько актуален, как мог бы быть; по крайней мере,INSTEAD
должен быть в этом списке, так как теперь он является частью T-SQL (так как были введены триггеры INSTEAD OF). Могу поспорить, что есть как минимум 20 других ключевых слов, которые были добавлены для SQL Server 2012, но также не включены в этот список. Быстро сканирований есть некоторые заметные исключения , которые должны быть там:OFFSET
,IIF
,FORMAT
и т.д.Другой пример, который вы можете найти интересным; попробуйте поместить слово как
INSTEAD
в строку, но в отдельной строке. Это работает нормально, но это не выглядит так:(Это любезно предоставлено @JonSeigel сообщением об ошибке .)
Я, вероятно, подал и прокомментировал пару десятков других ошибок в подсветке синтаксиса Management Studio ; это конечно не идеально. Я ценю, что вы хотите знать, почему, но мы не можем в конечном итоге узнать. Как вы можете видеть из множества этих элементов Connect, они обычно игнорируют / откладывают их или исправляют без особого объяснения.
источник
INSTEAD OF UPDATE
. Но это не зарезервированное слово ...