Sintassi Transact-SQL supportata da IntelliSense
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma 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
.