Sintassi Transact-SQL supportata da IntelliSenseTransact-SQL Syntax Supported by IntelliSense

In questo argomento vengono descritti le istruzioni e gli elementi di sintassi Transact-SQLTransact-SQL supportati da IntelliSense in SQL Server 2017SQL Server 2017.This topic describes the Transact-SQLTransact-SQL statements and syntax elements that are supported by IntelliSense in SQL Server 2017SQL Server 2017.

Istruzioni supportate da IntelliSenseStatements Supported by IntelliSense

In SQL Server 2017SQL Server 2017, IntelliSense supporta solo le istruzioni Transact-SQLTransact-SQL di uso più frequente.In SQL Server 2017SQL Server 2017, IntelliSense supports only the most commonly used Transact-SQLTransact-SQL statements. Alcune condizioni generali dell'editor di query del Motore di databaseDatabase Engine potrebbero impedire il funzionamento di IntelliSense.Some general Motore di databaseDatabase Engine Query Editor conditions might prevent IntelliSense from functioning. Per altre informazioni, vedere Risoluzione dei problemi di IntelliSense (SQL Server Management Studio).For more information, see Troubleshooting 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.IntelliSense is not available for encrypted database objects, such as encrypted stored procedures or user-defined functions. 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.Parameter help and Quick Info are not available for the parameters of extended stored procedures and CLR Integration user-defined types.

Istruzione SELECTSELECT Statement

L'editor di query del Motore di databaseDatabase Engine offre supporto IntelliSense per gli elementi della sintassi seguenti nell'istruzione SELECT:The Motore di databaseDatabase Engine Query Editor provides IntelliSense support for the following syntax elements in the SELECT statement:

SELECTSELECT WHEREWHERE
FROMFROM ORDER BYORDER BY
HAVINGHAVING UNIONUNION
FORFOR GROUP BYGROUP BY
Torna all'inizioTOP OPTION (hint)OPTION (hint)

Istruzioni Transact-SQL aggiuntive supportateAdditional Transact-SQL Statements That Are Supported

L'editor di query del Motore di databaseDatabase Engine offre inoltre supporto IntelliSense per le istruzioni Transact-SQLTransact-SQL elencate nella tabella seguente.The Motore di databaseDatabase Engine Query Editor also provides IntelliSense support for Transact-SQLTransact-SQL statements that are shown in the following table.

Istruzione Transact-SQLTransact-SQL statement Sintassi supportataSyntax supported EccezioniExceptions
INSERTINSERT Tutta la sintassi, eccetto la clausola execute_statement .All syntax, except the execute_statement clause. NessunoNone
UPDATEUPDATE Tutta la sintassi.All syntax. NessunoNone
DELETEDELETE Tutta la sintassi.All syntax. NessunoNone
DECLARE @local_variableDECLARE @local_variable Tutta la sintassi.All syntax. NessunoNone
SET @local_variableSET @local_variable Tutta la sintassi.All syntax. NessunoNone
EXECUTEEXECUTE Esecuzione di stored procedure e di funzioni definite dall'utente e di sistema.Execution of user-defined stored procedures, system stored procedures, user-defined functions, and system functions. NessunoNone
CREATE TABLECREATE TABLE Tutta la sintassi.All syntax. NessunoNone
CREATE VIEWCREATE VIEW Tutta la sintassi.All syntax. NessunoNone
CREATE PROCEDURECREATE PROCEDURE Tutta la sintassi.All syntax. Non è disponibile supporto IntelliSense per la clausola EXTERNAL NAME.There is no IntelliSense support for the EXTERNAL NAME clause.

Nella clausola AS IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento.In the AS clause, IntelliSense supports only the statements and syntax that are listed in this topic.
ALTER PROCEDUREALTER PROCEDURE Tutta la sintassiAll syntax Non è disponibile supporto IntelliSense per la clausola EXTERNAL NAME.There is no IntelliSense support for the EXTERNAL NAME clause.

Nella clausola AS IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento.In the AS clause, IntelliSense supports only the statements and syntax that are listed in this topic.
USEUSE Tutta la sintassi.All syntax. NessunoNone

IntelliSense in istruzioni supportateIntelliSense in Supported Statements

Nell'editor di query del Motore di databaseDatabase Engine IntelliSense supporta i seguenti elementi della sintassi quando vengono utilizzati in una delle istruzioni Transact-SQLTransact-SQL supportate:IntelliSense in the Motore di databaseDatabase Engine Query Editor supports the following syntax elements when they are used in one of the supported Transact-SQLTransact-SQL statements:

  • Tutti i tipi di join, ad esempio APPLYAll join types, including APPLY

  • PIVOT e UNPIVOTPIVOT and UNPIVOT

  • Riferimenti agli oggetti di database seguenti:References to the following database objects:

    • Database e schemiDatabases and schemas

    • Tabelle, viste, funzioni con valori di tabella ed espressioni di tabellaTables, views, table-valued functions, and table expressions

    • ColonneColumns

    • Procedure e parametri di proceduraProcedures and procedure parameters

    • Funzioni ed espressioni scalariScalar functions and scalar expressions

    • Variabili localiLocal variables

    • Espressioni di tabella comuni (CTE)Common table expressions (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.Database objects that are referenced only in CREATE or ALTER statements in the script or batch, but which do not exist in the database because the script or batch has not yet been run. Questi oggetti sono i seguenti:These objects are as follows:

    • Tabelle e procedure specificate in un'istruzione CREATE TABLE o CREATE PROCEDURE nello script o nel batch.Tables and procedures that have been specified in a CREATE TABLE or CREATE PROCEDURE statement in the script or batch.

    • Modifiche a tabelle e procedure specificate in un'istruzione ALTER TABLE o ALTER PROCEDURE nello script o nel batch.Changes to tables and procedures that have been specified in an ALTER TABLE or ALTER PROCEDURE statement in the script or batch.

    Nota

    IntelliSense non è disponibile per le colonne di un'istruzione CREATE VIEW fino a che non è stata eseguita l'istruzione CREATE VIEW.IntelliSense is not available for the columns of a CREATE VIEW statement until the CREATE VIEW statement has been executed.

    IntelliSense non è disponibile per gli elementi elencati sopra quando vengono usati in altre istruzioni Transact-SQLTransact-SQL .IntelliSense is not provided for the previously listed elements when they are used in other Transact-SQLTransact-SQL statements. 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.For example, there is IntelliSense support for column names that are used in a SELECT statement, but not for columns that are used in the CREATE FUNCTION statement.

EsempiExamples

All'interno di uno script o di un batch Transact-SQLTransact-SQL , nell'editor di query del Motore di databaseDatabase Engine IntelliSense supporta solo le istruzioni e la sintassi elencate in questo argomento.Within a Transact-SQLTransact-SQL script or batch, IntelliSense in the Motore di databaseDatabase Engine Query Editor supports only the statements and syntax that are listed in this topic. Negli esempi di codice Transact-SQLTransact-SQL seguenti sono mostrati le istruzioni e gli elementi della sintassi che IntelliSense supporta.The following Transact-SQLTransact-SQL code examples show what statements and syntax elements IntelliSense supports. 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 .For example, in the following batch, IntelliSense is available for the SELECT statement when it is coded by itself, but not when the SELECT is contained in a CREATE FUNCTION statement.

USE AdventureWorks2012;  
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 AdventureWorks2012.Production.Product  
    WHERE Name LIKE N'Road-250%'  
      AND Color = N'Red'  
);GO  

Questa funzionalità si applica anche ai set di istruzioni Transact-SQLTransact-SQL nella clausola AS di un'istruzione CREATE PROCEDURE o ALTER PROCEDURE.This functionality also applies to the sets of Transact-SQLTransact-SQL statements in the AS clause of a CREATE PROCEDURE or ALTER PROCEDURE statement.

All'interno di uno script o un batch Transact-SQLTransact-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.Within a Transact-SQLTransact-SQL script or batch, IntelliSense supports objects that have been specified in a CREATE or ALTER statement; however, these objects do not exist in the database because the statements have not been executed. È possibile ad esempio immettere nell'editor di query il codice seguente:For example, you might enter the following code in the Query Editor:

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.After you type SELECT, IntelliSense lists PrimaryKeyCol, FirstNameCol, and LastNameCol as possible elements in the select list, even if the script has not been executed and MyTable does not yet exist in MyTestDB.