Warum wird "Lookup" in SQL Server als ein für Funktionen reserviertes Wort angezeigt?


14

In SSMS 2208 ist der Bezeichner "Lookup" pink gefärbt, als wäre er eine Funktion (dieselbe Farbe wie "Power" oder "Convert"). Warum?

Ich kann es nicht in der offiziellen Liste der reservierten Wörter finden . Suchen im Internet scheinen nutzlos zu sein, da es eine Menge "Nachschlagewerke" gibt, die nichts mit meiner Frage zu tun haben.


1
Mir fällt nur die Funktion SSRS Lookup () ein ( msdn.microsoft.com/en-us/library/ee210531.aspx ). Gute Frage. +1
Thomas Stringer

@Shark schön finden, aber ich würde erwarten , dass es auch andere Funktionen ähnliche Regeln folgen, aber sie markieren nicht in SSMS, zum Beispiel COUNTDISTINCT, COUNTROWSund RUNNINGVALUEsollen die gleiche Art und Weise arbeiten.
Aaron Bertrand

Antworten:


14

Zuerst dachte ich, es käme von Sybase (wo natürlich SQL Server herkommt), das eine Nachschlagefunktion hat , aber dies ist PowerBuilder-bezogen. Und dann habe ich SQL Server 2000 überprüft und es leuchtet nicht in rosa in Query Analyzer ...

Bildbeschreibung hier eingeben

... wenn es ein Vermächtnis von Sybase wäre, hätte ich erwartet, dass es die ganze Zeit in der Liste der farbcodierten Wörter vorkommt. Es ist möglich, dass die Grammatikdatei aktualisiert wurde und im Jahr 2000 "aus Versehen" weggelassen wurde, aber ich bezweifle es. Es ist viel wahrscheinlicher, dass es farbig ist, da es im T-SQL-Sprachdienst als zukünftiges Kompatibilitätswort aufgeführt ist oder im Hinblick auf die Verwendung in den Sprachdienst geworfen wurde. (Ich warte auf die offizielle Bestätigung, und ich werde teilen, was ich kann.)

Einige andere lustige Beispiele ( ich habe mich 2008 über einige davon bei Connect beschwert , aber es wurde als "Won't Fix" geschlossen) für die unangemessene Hervorhebung von Wörtern, die ebenfalls nicht auf der von Ihnen zitierten Liste stehen:

  • Domains leuchtet grün auf
  • Description leuchtet blau auf
  • Server leuchtet blau auf
  • Instead leuchtet blau auf
  • RC2und RC4leuchten in blau

Bildbeschreibung hier eingeben

Zu der Zeit habe ich die Lookupoder InsteadBeispiele noch nicht aufgenommen und ich bin mir sicher, dass es auch einige andere gibt. Obwohl ich vermute, dass das Dokument, das Sie sich ansehen, nicht so aktuell ist, wie es auch sein könnte; Zumindest INSTEADsollte es auf dieser Liste stehen, da es jetzt Teil von T-SQL ist (seit Einführung von INSTEAD OF-Triggern). Ich wette, es gibt mindestens 20 andere Schlüsselwörter, die für SQL Server 2012 hinzugefügt wurden, aber auch nicht auf dieser Liste stehen. Schnell Scannen gibt es einige bemerkenswerte Ausnahmen , die es sein sollte: OFFSET, IIF, FORMATetc.

Ein weiteres interessantes Beispiel. Versuchen Sie, ein Wort wie INSTEADin eine Zeichenfolge, aber in eine eigene Zeile zu setzen. Das läuft gut, sieht aber nicht so aus:

SELECT 'foo 
INSTEAD
';

Bildbeschreibung hier eingeben

(Diesmal mit freundlicher Genehmigung eines von @JonSeigel eingereichten Fehlers .)

Ich habe wahrscheinlich ein paar Dutzend anderer Bugs gegen die Syntaxhervorhebung in Management Studio eingereicht und kommentiert . es ist sicherlich nicht perfekt. Ich weiß es zu schätzen, dass Sie wissen möchten, warum, aber wir werden es möglicherweise nicht herausfinden. Wie Sie an vielen dieser Connect-Elemente sehen können, ignorieren / verschieben sie diese normalerweise oder beheben sie ohne viel Erklärung.


2
Die habe ich vergessen! Ich bin vor einiger Zeit auf Ihre Connect-Übermittlung gestoßen.
ErikE

Übrigens macht "INSTEAD" irgendwie Sinn, da Trigger sein können INSTEAD OF UPDATE. Aber es ist kein reserviertes Wort ...
ErikE

@ErikE Ich habe "anstatt" markiert, da es sich um ein Keyword handelt, das nicht auf der Liste steht (ein weiterer Beweis dafür, dass es grob veraltet ist).
Aaron Bertrand

"Website" wird blau hervorgehoben und ist nicht in der Liste der reservierten Keywords enthalten
Simon D
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.