Behandeln von Transact-SQL IntelliSense-Problemen
In bestimmten Fällen kann es vorkommen, dass die IntelliSense-Optionen nicht wie erwartet funktionieren.
Online- und Offlineverfügbarkeit
Die IntelliSense-Optionen "Member auflisten", "Wort vervollständigen", "Parameterinfo" und "QuickInfo" sind im Transact-SQL-Editor nur unter bestimmten Bedingungen verfügbar. Weitere Informationen zu diesen Funktionen finden Sie unter Übersicht über Transact-SQL IntelliSense.
Es gibt zwei primäre Faktoren, die die Verfügbarkeit dieser Funktionen bestimmen:
Konnektivität zu einer Instanz von SQL Server: Wenn eine Verbindung zu einer Instanz von SQL Server besteht, ist IntelliSense verfügbar. In diesem Fall werden die IntelliSense-Metadaten auch dann von der Verbindung abgeleitet, wenn die bearbeitete Datei einem Datenbankprojekt zugeordnet ist.
Zuordnung zu einem Datenbankprojekt: Wenn die Datei, die Sie mit dem Transact-SQL-Editor bearbeiten, einem Datenbankprojekt zugeordnet ist, ist IntelliSense verfügbar. Falls Sie in diesem Fall nicht mit einer Instanz von SQL Server verbunden sind, werden die IntelliSense-Metadaten von den Datenbankobjekten abgeleitet, die dem Projekt zugeordnet sind.
In der folgenden Tabelle wird beschrieben, wie sich diese Faktoren auf die Verfügbarkeit der Funktionen auswirken: "Member auflisten", "Wort vervollständigen", "Parameterinfo" und "QuickInfo".
Verbunden mit einer Instanz von SQL Server? |
Einem Datenbankprojekt zugeordnet? |
Verfügbar |
Hinweise |
---|---|---|---|
Ja |
Ja |
Ja |
Verbindungsbasiertes IntelliSense |
Ja |
Nein |
Ja |
Verbindungsbasiertes IntelliSense |
Nein |
Ja |
Ja |
Projektbasiertes IntelliSense |
Nein |
Nein |
Nein |
Wenn der Transact-SQL-Editor mit einer Instanz von SQL Server verbunden ist, ist IntelliSense verfügbar und zeigt Objekte an, die dieser Datenbankverbindung zugeordnet sind. Wenn der Transact-SQL-Editor nicht mit einer Instanz von SQL Server verbunden ist, stammen die IntelliSense-Informationen von Objekten, die dem Datenbankprojekt zugeordnet sind. Wenn der Transact-SQL-Editor weder mit einer Instanz von SQL Server verbunden noch einem Datenbankprojekt zugeordnet ist, ist IntelliSense nicht verfügbar.
Die IntelliSense-Analysefunktionen und die Funktion "Transact-SQL-Codeausschnitte" sind auch dann verfügbar, wenn der Editor keinem Projekt zugeordnet und mit keiner Instanz von SQL Server verbunden ist.
Andere Bedingungen, die Auswirkungen auf IntelliSense haben
Die folgenden Bedingungen können das Verhalten von IntelliSense beeinflussen:
Über dem Cursor wird ein Codefehler angezeigt.
Wenn sich über der Position der Einfügemarke eine unvollständige Anweisung oder ein anderer Codierungsfehler befindet, kann IntelliSense die Codeelemente möglicherweise nicht analysieren und funktioniert daher nicht. Sie können den verfügbaren Code auskommentieren, um IntelliSense erneut zu aktivieren.
Die Einfügemarke befindet sich innerhalb eines Codekommentars.
Wenn sich die Einfügemarke innerhalb eines Kommentars in der Quelldatei befindet, sind IntelliSense-Optionen nicht verfügbar.
Die Einfügemarke befindet sich innerhalb eines Zeichenfolgenliterals.
Wenn sich die Einfügemarke innerhalb der Anführungszeichen eines Zeichenfolgenliterals befindet, sind IntelliSense-Optionen nicht verfügbar. Beispiel:
WHERE FirstName LIKE 'Patri%|'
Die Funktion ist deaktiviert.
Viele IntelliSense-Funktionen funktionieren standardmäßig automatisch. Sie können die einzelnen Funktionen jedoch auch deaktivieren.
Auch wenn die Funktion "Wort vervollständigen" deaktiviert ist, können Sie andere IntelliSense-Funktionen verwenden. Weitere Informationen finden Sie unter Modifying IntelliSense Options.
Überlegungen zum Transact-SQL-Editor
Die folgenden Probleme betreffen den Transact-SQL-Editor:
Die IntelliSense-Funktionalität des Transact-SQL-Editors unterstützt nicht alle Transact-SQL-Syntaxelemente. Die Parameterhilfe unterstützt die Parameter einiger Objekte nicht, zum Beispiel in erweiterten gespeicherten Prozeduren. Weitere Informationen finden Sie unter Von IntelliSense unterstützte Transact-SQL-Syntax.
IntelliSense ist im Transact-SQL-Editor nicht verfügbar, wenn eine Verbindung zu Versionen von SQL Server Database Engine (Datenbankmodul) besteht, die älter als SQL Server 2008 sind.
IntelliSense ist im Transact-SQL-Editor nicht verfügbar, wenn der Transact-SQL-Editor keinem Projekt zugeordnet ist und der Transact-SQL-Editor nicht mit einem Datenbankmodul verbunden ist.
IntelliSense wird im Transact-SQL-Editor deaktiviert, wenn der SQLCMD-Modus aktiviert wird.
Die IntelliSense-Funktionalität deckt keine von einer anderen Verbindung erstellten Datenbankobjekte ab, nachdem das Editorfenster eine Verbindung mit der Datenbank hergestellt hat. Sie können einen dieser drei Mechanismen auswählen, um den Cache von Objekten für das Editorfenster zu aktualisieren:
Wenn eine Verbindung zu einer Instanz von SQL Server besteht, spiegelt der IntelliSense-Cache die vorgenommenen Änderungen nicht wider, wenn Sie oder andere Benutzer während der Transact-SQL-Bearbeitungssitzung die Befehle CREATE, ALTER oder DROP für diese Instanz ausführen. Um den IntelliSense-Cache zu aktualisieren, wählen Sie im Menü Bearbeiten die Option IntelliSense und dann Lokalen Cache aktualisieren aus.
Verwenden Sie die Tastenkombination STRG+K gefolgt von STRG+C.
Vervollständigungslisten enthalten keine Datenbankobjekte, für die Sie keine Berechtigungen haben. IntelliSense kennzeichnet Verweise auf Objekte, für die Sie Berechtigungen haben. Wenn Sie beispielsweise ein Skript öffnen, das von einer anderen Person geschrieben wurde, werden alle Verweise auf Objekte als inkorrekt gekennzeichnet, für die diese Person über Berechtigungen verfügt, Sie jedoch nicht.
Vervollständigungslisten funktionieren möglicherweise nicht mehr, wenn die Verbindung zur Instanz von SQL Server verloren geht. Stellen Sie erneut eine Verbindung zur Instanz her.
Siehe auch
Andere Ressourcen
Übersicht über Transact-SQL IntelliSense
Verwenden des Transact-SQL-Trennzeichenvergleichs