Condividi tramite


Sintassi Transact-SQL supportata da IntelliSense

In questo argomento vengono descritti le istruzioni e gli elementi di sintassi Transact-SQL supportati da IntelliSense in SQL Server 2012.

Istruzioni supportate da IntelliSense

In SQL Server 2012, 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 ulteriori 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 fornisce supporto IntelliSense per i seguenti elementi della sintassi 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 fornisce inoltre supporto IntelliSense per le istruzioni Transact-SQL illustrate nella tabella seguente:

Istruzione Transact-SQL

Sintassi supportata

INSERT

Tutta la sintassi, eccetto la clausola execute_statement.

UPDATE

Tutta la sintassi.

DELETE

Tutta la sintassi.

DECLARE @local_variable

Tutta la sintassi.

SET @local_variable

Tutta la sintassi.

EXECUTE

Esecuzione di stored procedure e di funzioni definite dall'utente e di sistema.

CREATE TABLE

Tutta la sintassi.

CREATE VIEW

Tutta la sintassi.

CREATE PROCEDURE

Tutta la sintassi, con le eccezioni seguenti:

  • 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, con le eccezioni seguenti:

  • 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.

IntelliSense in istruzioni supportate

Nell'editor di query del Motore di database IntelliSense supporta i seguenti elementi della sintassi quando vengono utilizzati 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 sopra indicati quando vengono utilizzati 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 copre 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 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-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, FirstNameCol e LastNameCol come possibili elementi dell'elenco di selezione, anche se lo script non è stato eseguito e MyTable non esiste ancora in MyTestDB.