IntelliSense nie działa, ale jest włączony

30

Ten problem naprawdę okazuje się trudny (i dość denerwujący).

W SQL Server Management Studio 2008 jeszcze kilka dni temu moja IntelliSense działała świetnie. Nagle się zatrzymało. Ikona, ponieważ jest włączona w menu paska narzędzi, aw obszarze Narzędzia -> Opcje -> Edytor tekstu -> T-SQL -> IntelliSense mówi, że jest tam włączona.

Próbowałem odświeżać pamięć podręczną IntelliSense za pomocą Ctrl-Shft-R, ale to też nie działa.

Jakieś pomysły, co się stało z moją IntelliSense i co muszę zrobić, aby ją odzyskać?

Thomas Stringer
źródło

Odpowiedzi:

31

Istnieje wiele możliwości, w których IntelliSense nie działa:

Są przypadki, w których lokalna pamięć podręczna używana przez IntelliSense staje się nieaktualna. Odświeżanie pamięci podręcznej jest łatwe, ale niekoniecznie oczywiste.

Istnieją dwa sposoby odświeżenia pamięci podręcznej:

  1. Trafienie Ctrl+Shift+R
  2. Przejdź do Edycja -> IntelliSense -> Odśwież lokalną pamięć podręczną

Jeśli IntelliSense nadal nie działa, upewnij się, że masz włączony IntelliSense. Aby to sprawdzić w oknie edytora zapytań T-SQL bieżącej bazy danych:

  1. Przejdź do Narzędzia -> Opcje -> Edytor tekstu -> Transact-SQL -> Ogólne -> IntelliSense
  2. Idź do zapytania -> IntelliSense powinien być wybrany
  3. Sprawdź również, czy T-SQL Editor nie uruchamia się w trybie SQLCMD. Sprawdzić:

    • Przejdź do Narzędzia -> Opcje -> Wykonanie zapytania -> SQL Server -> Ogólne
    • Upewnij się, że „Domyślnie otwieraj nowe zapytania w trybie SQLCMD” nie jest zaznaczone.
    • lub Idź do zapytania -> Tryb SQLCMD nie powinien być wybrany

Czytaj więcej

Ritesh D.
źródło
16

Miałem ten problem, więc posłuchałem rady Ritesha D. i poszedłem do Narzędzia -> Opcje -> Edytor tekstu -> Transact-SQL -> Ogólne . Sprawdziłem IntelliSense i stwierdziłem, że jest już włączony.

Odkryłem jednak, że „Auto list członkowie” i „Informacje o parametrach” nie są zaznaczone. Więc sprawdziłem je. To rozwiązało mój problem.

wprowadź opis zdjęcia tutaj

Te dwie funkcje nazywam „inteligencją”, a Microsoft się nie zgadza :

IntelliSense to ogólny termin określający szereg funkcji: członków listy, informacje o parametrach, szybkie informacje i pełne słowo. Te funkcje pomagają dowiedzieć się więcej o używanym kodzie, śledzić wpisywane parametry oraz dodawać wywołania do właściwości i metod za pomocą kilku naciśnięć klawiszy.

Michael Currie
źródło
9

Sprawdź, czy Maksymalny rozmiar skryptu jest ustawiony na „Nieograniczony” w opcji menu Narzędzia -> Opcje -> Edytor tekstu -> Transact-SQL -> Ogólne -> IntelliSense. Zrobiłem to i intellisense zaczęło działać

RT0205
źródło
5

Gdy korzystasz ze zdalnej bazy danych z niskim połączeniem transferu (na przykład połączyłem się z Europy do serwera biurowego dalekiej Azji) i gdy struktura bazy danych nie jest mała (na przykład wiele tabel), SSMS potrzebuje dużo więcej czasu na skompletowanie wszystkich danych IntelliSense.

W moim przypadku musiałem czekać ponad 1 minutę, aby mieć dostęp do IntelliSense (wolne połączenie i db z około 1000 tabel). (SSMS nie wyświetla żadnych wskaźników postępu ani żadnych informacji związanych z procesem ładowania IntelliSense)

Bronek
źródło
1

Bazy danych OFFLINE mogą spowodować, że intelissense przestanie działać. Możesz to przetestować, ustawiając dowolną bazę danych na podłączonym serwerze w tryb offline i przywracając ją.

Potwierdzam to jako błąd SQL 2016

drelich
źródło
1

Zauważyłem ten problem, gdy odwołałem niektóre uprawnienia dla użytkownika publicznego, jak sugeruje Azure. Pomogło to rozwiązać mój problem:

use master
go
GRANT EXECUTE ON [xp_instance_regread] TO [public]
GRANT EXECUTE ON [xp_regread] TO [public]
Michael Capobianco
źródło
-3

Miałem ten sam problem z SQL Server 2008 R2. Rozwiązanie zostało rozwiązane dopiero po zastosowaniu dodatku Service Pack 1 dla programu SQL Server 2008R2.

Geeta
źródło
SQL Server 2008 i SQL Server 2008 R2 to różne wersje. Pytanie dotyczy tego pierwszego i twojej odpowiedzi na temat drugiego.
Andriy M