Dans SSMS 2208, l'identifiant "Lookup" est coloré en rose vif comme s'il s'agissait d'une fonction (même couleur que, par exemple, "Power" ou "Convert"). Pourquoi?
Je ne le trouve pas dans la liste officielle des mots réservés . Les recherches sur le Web semblent inutiles car il existe énormément de termes de "recherche" qui n'ont rien à voir avec ma question.
COUNTDISTINCT
,COUNTROWS
etRUNNINGVALUE
devraient fonctionner de la même manière.Réponses:
Au début, je pensais que cela venait de Sybase (qui est bien sûr l'origine de SQL Server), qui a une fonction de recherche , mais c'est lié à PowerBuilder. Et puis j'ai vérifié SQL Server 2000 et il ne s'allume pas en rose dans l'Analyseur de requêtes ...
... si c'était un héritage de Sybase, je me serais attendu à ce qu'il figure tout au long de la liste des mots codés par couleur. Il est possible, je suppose, que le fichier de grammaire ait été mis à jour et qu'il ait été omis "par erreur" en 2000, mais j'en doute. Il est beaucoup plus probable qu'il soit coloré car il est répertorié dans le service de langue T-SQL en tant que futur mot de compatibilité, ou il a été jeté dans le service de langue en prévision de son utilisation. (J'attends la confirmation officielle de cela, et je partagerai ce que je peux.)
Quelques autres exemples amusants ( je me suis plaint de quelques-uns de ceux-ci sur Connect en 2008 , mais il n'a pas été corrigé) de surlignage inapproprié de mots qui ne figurent pas non plus sur la liste que vous citez:
Domains
s'allume en vertDescription
s'allume en bleuServer
s'allume en bleuInstead
s'allume en bleuRC2
etRC4
s'allume en bleuÀ l'époque, je n'ai pas capturé le
Lookup
ou lesInstead
exemples, et je suis sûr qu'il y en a aussi d'autres. Bien que je suppose que le document que vous regardez n'est pas aussi à jour qu'il pourrait l'être non plus;INSTEAD
devrait à tout le moins figurer sur cette liste car il fait désormais partie de T-SQL (depuis l'introduction des déclencheurs INSTEAD OF). Je parie qu'il y a au moins 20 autres mots clés qui ont été ajoutés pour SQL Server 2012 mais qui ne figurent pas sur cette liste également. Numérisation rapidement il y a quelques exclusions notables qui devraient être là:OFFSET
,IIF
,FORMAT
, etc.Un autre exemple que vous pourriez trouver intéressant; essayez de mettre un mot comme
INSTEAD
dans une chaîne mais sur sa propre ligne. Cela fonctionne bien, mais il ne semble pas:(Celui-ci avec l'aimable autorisation d' un bogue déposé par @JonSeigel .)
J'ai probablement déposé et commenté quelques dizaines d'autres bogues contre la mise en évidence de la syntaxe de Management Studio ; ce n'est certainement pas parfait. J'apprécie que vous vouliez savoir pourquoi, mais nous ne le saurons peut-être pas en fin de compte. Comme vous pouvez le voir sur un grand nombre de ces éléments Connect, ils les ignorent / reportent généralement ou les corrigent sans trop d'explications.
la source
INSTEAD OF UPDATE
. Mais ce n'est pas un mot réservé ...