Freigeben über


Von IntelliSense unterstützte Transact-SQL-Syntax

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

In diesem Thema werden die Transact-SQL-Anweisungen und Syntaxelemente beschrieben, die von IntelliSense in SQL Server unterstützt werden.

Von IntelliSense unterstützte Anweisungen

In SQL Server werden nur die am häufigsten verwendeten Transact-SQL-Anweisungen von IntelliSense unterstützt. Einige allgemeine Datenbank-Engine -Abfrage-Editor-Bedingungen könnten verhindern, dass IntelliSense funktioniert. Weitere Informationen finden Sie unter Problembehandlung von IntelliSense (SQL Server Management Studio).

Hinweis

IntelliSense ist nicht für verschlüsselte Datenbankobjekte verfügbar, z. B. verschlüsselte gespeicherte Prozeduren oder benutzerdefinierte Funktionen. Für Parameter von erweiterten gespeicherten Prozeduren und benutzerdefinierten Typen für die CLR-Integration stehen weder Parameterhilfe noch QuickInfo zur Verfügung.

SELECT-Anweisung

Der Datenbank-Engine -Abfrage-Editor stellt IntelliSense-Unterstützung für die folgenden Syntaxelemente in der SELECT-Anweisung bereit:

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (Hinweis)

Weitere Transact-SQL-Anweisungen, die unterstützt werden

Der Datenbank-Engine-Abfrage-Editor stellt zudem IntelliSense-Unterstützung für die in der folgenden Tabellen aufgeführten Transact-SQL-Anweisungen bereit.

Transact-SQL-Anweisung Unterstützte Syntax Ausnahmen
INSERT Die gesamte Syntax, mit Ausnahme der execute_statement -Klausel. Keine
UPDATE Gesamte Syntax. Keine
DELETE Gesamte Syntax. Keine
DECLARE @local_variable Gesamte Syntax. Keine
SET @local_variable Gesamte Syntax. Keine
EXECUTE Ausführung von benutzerdefinierten gespeicherten Prozeduren, gespeicherten Systemprozeduren, benutzerdefinierten Funktionen und Systemfunktionen. Keine
CREATE TABLE Gesamte Syntax. Keine
CREATE VIEW Gesamte Syntax. Keine
CREATE PROCEDURE Gesamte Syntax. Es gibt keine IntelliSense-Unterstützung für die EXTERNAL NAME-Klausel.

In der AS-Klausel unterstützt IntelliSense nur die Anweisungen und die Syntaxelemente, die in diesem Thema aufgeführt werden.
ALTER PROCEDURE Gesamte Syntax Es gibt keine IntelliSense-Unterstützung für die EXTERNAL NAME-Klausel.

In der AS-Klausel unterstützt IntelliSense nur die Anweisungen und die Syntaxelemente, die in diesem Thema aufgeführt werden.
USE Gesamte Syntax. Keine

IntelliSense in unterstützten Anweisungen

IntelliSense im Datenbank-Engine -Abfrage-Editor unterstützt die folgenden Syntaxelemente, wenn sie in einer der unterstützten Transact-SQL-Anweisungen verwendet werden:

  • Alle Jointypen, einschließlich APPLY.

  • PIVOT und UNPIVOT.

  • Verweise auf die folgenden Datenbankobjekte:

    • Datenbanken und Schemas

    • Tabellen, Sichten, Tabellenwertfunktionen und Tabellenausdrücke

    • Spalten

    • Prozeduren und Prozedurparameter

    • Skalare Funktionen und Skalarausdrücke

    • Lokale Variablen

    • Allgemeine Tabellenausdrücke (CTE)

  • Datenbankobjekte, auf die nur in der CREATE-Anweisung oder der ALTER-Anweisung im Skript oder im Batch verwiesen wird, die aber nicht in der Datenbank vorhanden sind, da das Skript bzw. der Batch noch nicht ausgeführt wurde. Nachfolgend sind diese Objekte aufgeführt:

    • Tabellen und Prozeduren, die in einer CREATE TABLE-Anweisung oder CREATE PROCEDURE-Anweisung im Skript oder Batch angegeben wurden.

    • Änderungen an Tabellen und Prozeduren, die in einer ALTER TABLE-Anweisung oder ALTER PROCEDURE-Anweisung im Skript oder Batch angegeben wurden.

    Hinweis

    IntelliSense ist nicht verfügbar für die Spalten einer CREATE VIEW-Anweisung, solange die CREATE VIEW-Anweisung nicht ausgeführt wurde.

IntelliSense wird für die zuvor genannten Elemente nicht bereitgestellt, wenn sie in anderen Transact-SQL-Anweisungen verwendet werden. Es ist z. B. IntelliSense-Unterstützung für Spaltennamen verfügbar, die in einer SELECT-Anweisung verwendet werden, nicht jedoch für Spaltennamen, die in der CREATE FUNCTION-Anweisung verwendet werden.

Beispiele

In einem TransactSQL-Skript oder -Batch werden von IntelliSense nur die in diesem Thema aufgeführten Anweisungen und Syntaxelemente im Datenbank-Engine-Abfrage-Editor unterstützt. Die folgenden Transact-SQL-Codebeispiele zeigen, welche Anweisungen und Syntaxelemente von IntelliSense unterstützt werden. Beispielsweise ist im folgenden Batch IntelliSense verfügbar für die SELECT -Anweisung, wenn diese eigencodiert ist, aber nicht, wenn SELECT in einer CREATE FUNCTION -Anweisung enthalten ist.

USE AdventureWorks2022;  
GO  
SELECT Name  
FROM Production.Product  
WHERE Name LIKE N'Road-250%' and Color = N'Red';  
GO  
CREATE FUNCTION Production.ufn_Red250 ()  
RETURNS TABLE  
AS  
RETURN   
(  
    SELECT Name  
    FROM AdventureWorks2022.Production.Product  
    WHERE Name LIKE N'Road-250%'  
      AND Color = N'Red'  
);GO  

Diese Funktionalität gilt auch für die Sätze von Transact-SQL-Anweisungen in der AS-Klausel einer CREATE PROCEDURE-Anweisung oder ALTER PROCEDURE-Anweisung.

In einem Transact-SQL-Skript oder -Batch werden von IntelliSense Objekte unterstützt, die in einer CREATE-Anweisung oder ALTER-Anweisung angegeben sind. Allerdings sind diese Objekte nicht in der Datenbank vorhanden, da die Anweisungen nicht ausgeführt wurden. Sie können z. B. den folgenden Code im Abfrage-Editor eingeben:

USE MyTestDB;  
GO  
CREATE TABLE MyTable  
    (PrimaryKeyCol   INT PRIMARY KEY,  
    FirstNameCol      NVARCHAR(50),  
   LastNameCol       NVARCHAR(50));  
GO  
SELECT   

Wenn Sie SELECTeingegeben haben, listet IntelliSense PrimaryKeyCol, FirstNameColund LastNameCol als mögliche Elemente in der Auswahlliste auf, auch wenn das Skript nicht ausgeführt wurde und MyTable noch nicht in MyTestDBvorhanden ist.