Eu uso o SQL Server 2016 Developer Edition no Windows 10 de 64 bits. Todos os bancos de dados são locais no meu laptop.
Eu tenho um arquivo de script SQL e o Intellisense não funciona nele. Habilitei o Intellisense e tentei várias correções sugeridas neste post:
O IntelliSense não está funcionando, mas está ativado
Nenhuma dessas correções funciona para mim; no entanto, o Intellisense funciona em todos os outros arquivos. A única coisa especial deste arquivo é seu tamanho: tem mais de 600 linhas de código.
Parece que o problema é causado por um comando que cria o índice columnstore. Aqui está um código de exemplo:
SELECT TOP 100 *
INTO #test1
FROM tab1
CREATE CLUSTERED COLUMNSTORE INDEX idx ON #test1
SELECT TOP 100 *
INTO #test2
FROM tab1
Descobri que o Intellisense parou de funcionar depois de inserir o bloco de código no meio! O contorno também desaparecerá após a inserção do bloco de código do meio.
Depois de remover o bloco de código do meio, o contorno e o Intellisense funcionarão novamente.
Alguém pode me ajudar a testar este caso de exemplo?
--
Tentei adicionar ponto e vírgula um GO para separar o código, mas nenhum deles funciona para mim. Agora parece que a única solução viável é comentar esse bloco do meio.
Caso já esteja habilitado, pressione Ctrl+ Shift+ R. Isso atualizará o Intellisense com o banco de dados usado.
Às vezes, se o banco de dados usado não for frequente, isso não funcionará instantaneamente no SSMS, mas o acima atualizará o Intellisense.
No caso de problemas relacionados a scripts longos, vá para Ferramentas>Opções> . Lá no lado esquerdo, procure por Editor de Texto>Transact-SQL>IntelliSense .
Existe um item chamado Tamanho Máximo do Script . Pode ser 100KB`. No menu suspenso, altere-o para pelo menos 5 MB ou para Ilimitado de acordo com sua preferência. Depois de definir isso, você precisa fechar o SSMS e iniciá-lo novamente. Algumas versões mais antigas exigiam a reinicialização do sistema. Isso deve funcionar.
Adicione um ponto e vírgula após o bloco de código do meio. Tenho notado que às vezes fica "preso" tentando processar alguma coisa. Fornecer a ele uma quebra clara em um comando parece permitir que ele recomece na próxima consulta.
Após alguns testes, também estou enfrentando o mesmo problema com o SSMS 2016 (ver. 13.0.16104.4). Consegui manter a funcionalidade Outlining e IntelliSense funcionando por mais algumas palavras do que você está relatando incluindo a palavra opcional
NONCLUSTERED
, mas depois que nomeei o índice, os recursos IntelliSense e Outlining pararam de funcionar.Sugiro que você preencha um item do Microsoft Connect para que a equipe do MS tenha um tíquete de envio de bug adequado para trabalhar.
Poste o link após o fato e eu vou votar nele também.