O IntelliSense não está funcionando, mas está ativado

30

Este problema está realmente provando ser complicado (e bastante irritante).

No SQL Server Management Studio 2008, até alguns dias atrás, meu IntelliSense estava funcionando muito bem. Então, de repente, parou. O ícone como ativado no menu da barra de ferramentas e, em Ferramentas -> Opções -> Editor de texto -> T-SQL -> IntelliSense, ele diz que está ativado lá.

Eu tentei atualizar o cache do IntelliSense com Ctrl-Shft-R, mas isso também não funciona.

Alguma idéia do que aconteceu com o meu IntelliSense e o que preciso fazer para recuperá-lo?

Thomas Stringer
fonte

Respostas:

31

Existem inúmeras possibilidades em que o IntelliSense não está funcionando:

Há casos em que o cache local usado pelo IntelliSense se torna obsoleto. Atualizar o cache é fácil, mas não necessariamente óbvio.

Existem duas maneiras de atualizar o cache:

  1. Acertar Ctrl+Shift+R
  2. Vá para Editar -> IntelliSense -> Atualizar cache local

Se o IntelliSense ainda não estiver funcionando, verifique se o IntelliSense está ativado. Para verificar isso na janela do editor de consulta T-SQL do banco de dados atual:

  1. Vá para Ferramentas -> Opções -> Editor de texto -> Transact-SQL -> Geral -> IntelliSense
  2. Vá para Consulta -> IntelliSense deve ser selecionado
  3. Verifique também se o T-SQL Editor não é iniciado no modo SQLCMD. Checar:

    • Vá para Ferramentas -> Opções -> Execução de Consulta -> SQL Server -> Geral
    • Certifique-se de que "Por padrão, abra novas consultas no modo SQLCMD" esteja desmarcada.
    • ou Vá para Consulta -> Modo SQLCMD não deve ser selecionado

consulte Mais informação

Ritesh D
fonte
16

Como tive esse problema, segui o conselho de Ritesh D e fui para Ferramentas -> Opções -> Editor de texto -> Transact-SQL -> Geral . Verifiquei o IntelliSense e descobri que já estava ativado.

No entanto, descobri que "Membros da lista automática" e "Informações sobre parâmetros" estavam desmarcados. Então eu verifiquei eles. Isso resolveu meu problema.

insira a descrição da imagem aqui

Esses dois recursos são o que considero "intellisense", e a Microsoft não discorda :

IntelliSense é o termo geral para vários recursos: Listar Membros, Informações sobre Parâmetros, Informações Rápidas e Complete Word. Esses recursos ajudam você a aprender mais sobre o código que está usando, acompanhar os parâmetros digitados e adicionar chamadas às propriedades e métodos com apenas algumas teclas.

Michael Currie
fonte
9

Verifique se o tamanho máximo do script está definido como "Ilimitado" na opção de menu Ferramentas -> Opções -> Editor de texto -> Transact-SQL -> Geral -> IntelliSense. Eu fiz isso e o intellisense começou a trabalhar

RT0205
fonte
5

Quando você usa banco de dados remoto com conexão de baixa transferência (por exemplo, eu conectei da Europa ao servidor de escritório da Ásia distante) e quando a estrutura do banco de dados não é pequena (por exemplo, muitas tabelas), leva muito mais tempo para o SSMS concluir todos os dados do IntelliSense.

No meu caso, tive que esperar mais de 1 minuto para ter o IntelliSense acessível (conexão lenta e banco de dados com cerca de 1000 tabelas). (O SSMS não exibe nenhum indicador de progresso ou qualquer informação relacionada ao processo de carregamento do IntelliSense)

Bronek
fonte
1

Bancos de dados offline podem fazer com que o intelissense pare de funcionar. Você pode testá-lo colocando qualquer banco de dados no servidor conectado em OFFLINE e revertendo-o.

Posso confirmá-lo como um bug do SQL 2016

brim
fonte
1

Percebi esse problema quando revoguei algumas permissões para o usuário público, conforme sugerido pelo Azure. Isso ajudou a resolver meu problema:

use master
go
GRANT EXECUTE ON [xp_instance_regread] TO [public]
GRANT EXECUTE ON [xp_regread] TO [public]
Michael Capobianco
fonte
-3

Eu tive o mesmo problema com o SQL Server 2008 R2. Foi resolvido somente após a aplicação do SQL Server 2008R2 Service Pack 1.

Geeta
fonte
O SQL Server 2008 e o SQL Server 2008 R2 são versões diferentes. A pergunta é sobre o primeiro, e sua resposta, sobre o último.
Andriy M