Condividi tramite


Sintassi Transact-SQL supportata da IntelliSense

Si applica a:SQL Serverdatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)

Questo argomento descrive gli elementi della sintassi e le istruzioni Transact-SQL supportati da IntelliSense in SQL Server.

Istruzioni supportate da IntelliSense

In SQL Server IntelliSense supporta solo le istruzioni Transact-SQL di uso più frequente. Alcune condizioni generali dell'editor di query del motore di database potrebbero impedire il funzionamento di IntelliSense. Per altre informazioni, vedere Risoluzione dei problemi di IntelliSense (SQL Server Management Studio).

Nota

IntelliSense non è disponibile per gli oggetti di database crittografati, ad esempio stored procedure o funzioni definite dall'utente crittografate. Le funzionalità Guida relativa ai parametri e Informazioni rapide non sono disponibili per i parametri di stored procedure estese e per i tipi definiti dall'utente di Integrazione con CLR.

Istruzione SELECT

L'editor di query del motore di database offre supporto IntelliSense per gli elementi della sintassi seguenti nell'istruzione SELECT:

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (hint)

Istruzioni Transact-SQL aggiuntive supportate

L'editor di query del motore di database offre inoltre supporto IntelliSense per le istruzioni Transact-SQL elencate nella tabella seguente.

Istruzione Transact-SQL Sintassi supportata Eccezioni
INSERT Tutta la sintassi, eccetto la clausola execute_statement . None
UPDATE Tutta la sintassi. None
DELETE Tutta la sintassi. None
DECLARE @local_variable Tutta la sintassi. None
SET @local_variable Tutta la sintassi. None
EXECUTE Esecuzione di stored procedure e di funzioni definite dall'utente e di sistema. None
CREATE TABLE Tutta la sintassi. None
CREATE VIEW Tutta la sintassi. None
CREATE PROCEDURE Tutta la sintassi. Non è disponibile supporto IntelliSense per la clausola EXTERNAL NAME.

Nella clausola AS IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento.
ALTER PROCEDURE Tutta la sintassi Non è disponibile supporto IntelliSense per la clausola EXTERNAL NAME.

Nella clausola AS IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento.
USE Tutta la sintassi. None

IntelliSense in istruzioni supportate

Nell'editor di query del motore di database IntelliSense supporta gli elementi della sintassi seguenti quando vengono usati in una delle istruzioni Transact-SQL supportate:

  • Tutti i tipi di join, ad esempio APPLY

  • PIVOT e UNPIVOT

  • Riferimenti agli oggetti di database seguenti:

    • Database e schemi

    • Tabelle, viste, funzioni con valori di tabella ed espressioni di tabella

    • Colonne

    • Procedure e parametri di procedura

    • Funzioni ed espressioni scalari

    • Variabili locali

    • Espressioni di tabella comuni (CTE)

  • Oggetti di database cui viene fatto riferimento solo in istruzioni CREATE o ALTER nello script o nel batch, ma che non esistono nel database perché lo script o il batch non è ancora stato eseguito. Questi oggetti sono i seguenti:

    • Tabelle e procedure specificate in un'istruzione CREATE TABLE o CREATE PROCEDURE nello script o nel batch.

    • Modifiche a tabelle e procedure specificate in un'istruzione ALTER TABLE o ALTER PROCEDURE nello script o nel batch.

    Nota

    IntelliSense non è disponibile per le colonne di un'istruzione CREATE VIEW fino a che non è stata eseguita l'istruzione CREATE VIEW.

IntelliSense non è disponibile per gli elementi elencati sopra quando vengono usati in altre istruzioni Transact-SQL. Il supporto IntelliSense è ad esempio disponibile per i nomi di colonna utilizzati in un'istruzione SELECT, ma non per le colonne utilizzate nell'istruzione CREATE FUNCTION.

Esempi

All'interno di uno script o di un batch Transact-SQL, nell'editor di query del motore di database IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento. Negli esempi di codice Transact-SQL seguenti sono mostrati le istruzioni e gli elementi della sintassi che IntelliSense supporta. Ad esempio, nel batch seguente, IntelliSense è disponibile per l'istruzione SELECT quando è codificata da sola, ma non quando SELECT è contenuta in un'istruzione CREATE FUNCTION .

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  

Questa funzionalità si applica anche ai set di istruzioni Transact-SQL nella clausola AS di un'istruzione CREATE PROCEDURE o ALTER PROCEDURE.

All'interno di uno script o un batch Transact-SQL, IntelliSense supporta gli oggetti che sono stati specificati in un'istruzione CREATE o ALTER, ma questi oggetti non esistono nel database perché le istruzioni non sono state eseguite. È possibile ad esempio immettere nell'editor di query il codice seguente:

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

Quando si digita SELECT, IntelliSense elenca PrimaryKeyCol, FirstNameCole LastNameCol come possibili elementi dell'elenco di selezione, anche se lo script non è stato eseguito e MyTable non esiste ancora in MyTestDB.