Por que a “Pesquisa” é colorida como uma palavra reservada à função no SQL Server?


14

No SSMS 2208, o identificador "Pesquisa" é colorido como rosa quente como se fosse uma função (mesma cor que, digamos, "Energia" ou "Converter"). Por quê?

Não consigo encontrá-lo na lista oficial de palavras reservadas . Pesquisas na Web parecem inúteis, pois existem muitos termos de "pesquisa" por aí que não têm nada a ver com a minha pergunta.


1
Tudo o que consigo pensar é na função Pesquisa do SSRS () ( msdn.microsoft.com/en-us/library/ee210531.aspx ). Boa pergunta. 1
— Thomas Stringer

@ Find Shark agradável, mas eu esperaria que outras funções lá sigam regras semelhantes, mas elas não se destacam no SSMS, por exemplo COUNTDISTINCT, COUNTROWSe RUNNINGVALUEdevem funcionar da mesma maneira.
— Aaron Bertrand

Respostas:


14

No começo, eu pensei que era da Sybase (que é a origem do SQL Server, é claro), que tem uma função de pesquisa , mas isso está relacionado ao PowerBuilder. E então eu verifiquei o SQL Server 2000 e ele não acende em rosa no Query Analyzer ...

insira a descrição da imagem aqui

... se fosse um legado da Sybase, eu esperaria que estivesse na lista de palavras com código de cores o tempo todo. Suponho que seja possível que o arquivo gramatical tenha sido atualizado e omitido "por engano" em 2000, mas duvido. É muito mais provável que ele seja colorido porque está listado no Serviço de Idioma T-SQL como uma palavra de compatibilidade futura ou foi lançado no Serviço de Idioma antes de ser usado. (Estou aguardando a confirmação oficial disso e vou compartilhar o que puder.)

Alguns outros exemplos divertidos ( reclamei alguns deles no Connect em 2008 , mas foi fechado como Won't Fix) de realce inadequado de palavras que também não estão na lista que você cita:

  • Domains acende em verde
  • Description acende em azul
  • Server acende em azul
  • Instead acende em azul
  • RC2e RC4acender em azul

insira a descrição da imagem aqui

Na época, não capturei os exemplos Lookupou Insteade tenho certeza de que existem outros também. Embora eu esteja supondo que o documento que você está visualizando não seja tão atualizado quanto poderia ser; no mínimo, INSTEADdeve estar nessa lista, pois agora faz parte do T-SQL (desde que os gatilhos INSTEAD OF foram introduzidos). Aposto que há pelo menos outras 20 palavras-chave que foram adicionadas para o SQL Server 2012, mas também não estão nessa lista. Digitalização rapidamente existem algumas exclusões notáveis que deveriam estar lá: OFFSET, IIF, FORMAT, etc.

Outro exemplo que você pode achar interessante; tente colocar uma palavra como INSTEADem uma string, mas em sua própria linha. Isso funciona bem, mas não parece que será:

SELECT 'foo 
INSTEAD
';

insira a descrição da imagem aqui

(Esta é uma cortesia de um bug registrado por @JonSeigel .)

Provavelmente, eu arquivei e comentei uma dúzia de outros bugs contra o realce da sintaxe do Management Studio ; certamente não é perfeito. Compreendo que você queira saber o porquê, mas podemos não descobrir. Como você pode ver em muitos desses itens do Connect, eles geralmente os ignoram / adiam ou os corrigem sem muita explicação.


2
Eu esqueci disso! Encontrei seu envio do Connect algum tempo atrás.
— ErikE

A propósito, "INSTEAD" meio que faz sentido, pois os gatilhos podem ser INSTEAD OF UPDATE. Mas não é uma palavra reservada ...
— ErikE

@ErikE Eu destaquei "em vez disso" porque é uma palavra-chave, mas não está na lista (outro fragmento de evidência de que ela está desatualizada).
— Aaron Bertrand

"site" é destacado em azul e não está na lista de palavras-chave reservadas
— Simon D
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.