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.

ErikE
fonte
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.

Aaron Bertrand
fonte
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