Condividi tramite


Risoluzione dei problemi relativi a Transact-SQL IntelliSense

In alcuni casi le opzioni IntelliSense potrebbero non funzionare nel modo previsto.

Disponibilità online e offline

Le opzioni IntelliSense Elenca membri, Completa parola, Informazioni sul parametro e Informazioni rapide sono disponibili nell'editor Transact-SQL solo in determinate condizioni. Per ulteriori informazioni su queste funzionalità, vedere Cenni preliminari su Transact-SQL IntelliSense.

Esistono due fattori principali che determinano la disponibilità di queste funzionalità:

  • Connettività a un'istanza di SQL Server: in caso di connessione a un'istanza di SQL Server, IntelliSense è disponibile. In questo caso, i metadati IntelliSense sono derivati dalla connessione, anche se il file che si sta modificando è associato a un progetto di database.

  • Associazione a un progetto di database: quando il file che si sta modificando con l'editor Transact-SQL è associato a un progetto di database, IntelliSense è disponibile. In questo caso, se non si è connessi a un'istanza di SQL Server, i metadati di IntelliSense vengono derivati dagli oggetti di database associati al progetto.

Nella tabella seguente viene descritta l'influenza di questi fattori sulla disponibilità delle funzionalità Elenca membri, Completa parola, informazioni sul parametro e Informazioni rapide.

Connessione a un'istanza di SQL Server

Associazione a progetto di database

Disponibile

Note

IntelliSense basato sulla connessione

No

IntelliSense basato sulla connessione

No

IntelliSense basato sul progetto

No

No

No

Quando l'editor Transact-SQL è connesso a un'istanza di SQL Server, IntelliSense è disponibile e mostra oggetti associati a quella connessione di database. Quando l'editor Transact-SQL non è connesso a un'istanza di SQL Server, le informazioni di IntelliSense derivano da oggetti associati al progetto di database. Se l'editor Transact-SQL non è connesso a un'istanza di SQL Server e non è neppure associato a un progetto di database, IntelliSense non è disponibile.

Le funzionalità di analisi di IntelliSense e la funzionalità Frammenti di codice di Transact-SQL sono sempre disponibili, anche quando l'editor non è associato a un progetto o connesso a un'istanza di SQL Server.

Altre condizioni che influiscono su IntelliSense

Le condizioni seguenti potrebbero influire sul comportamento di IntelliSense:

  • È presente un errore nel codice sopra il cursore.

    Se esiste un'istruzione incompleta o un altro errore di codice sopra la posizione del punto di inserimento, IntelliSense potrebbe non essere in grado di analizzare gli elementi del codice e quindi non funzionare. Per abilitarlo di nuovo, è possibile impostare come commento il codice pertinente.

  • Il punto di inserimento si trova all'interno di un commento di codice.

    Le opzioni IntelliSense non sono disponibili quando il punto di inserimento si trova all'interno di un commento nel file di origine.

  • Il punto di inserimento si trova all'interno di un valore letterale stringa.

    Le opzioni IntelliSense non sono disponibili quando il punto di inserimento si trova all'interno delle virgolette che racchiudono un valore letterale stringa, come illustrato nell'esempio seguente:

    WHERE FirstName LIKE 'Patri%|'

  • La funzionalità viene disattivata.

    Per impostazione predefinita, molte funzionalità IntelliSense operano automaticamente ma possono essere disabilitate.

Anche quando la funzionalità Completa parola è disabilitata, è possibile utilizzare altre funzionalità IntelliSense. Per ulteriori informazioni, vedere Modifying IntelliSense Options.

Considerazioni sull'editor Transact-SQL

I problemi descritti di seguito sono relativi all'editor Transact-SQL:

  • La funzionalità IntelliSense dell'editor Transact-SQL non supporta tutti gli elementi della sintassi Transact-SQL. La Guida relativa ai parametri non supporta i parametri in alcuni oggetti, ad esempio nelle stored procedure estese. Per ulteriori informazioni, vedere Sintassi Transact-SQL supportata da IntelliSense.

  • IntelliSense non è disponibile nell'editor Transact-SQL quando connesso a versioni di Motore di database di SQL Server precedenti SQL Server 2008.

  • IntelliSense non è disponibile nell'editor Transact-SQL quando l'editor Transact-SQL non è associato a un progetto e l'editor Transact-SQL non è connesso a un motore di database.

  • IntelliSense è disattivato nell'editor Transact-SQL quando è impostata la modalità SQLCMD.

  • La funzionalità IntelliSense non può essere utilizzata per oggetti di database creati da un'altra connessione dopo che la finestra dell'editor è stata connessa al database. Per aggiornare la cache di oggetti per la finestra dell'editor, è possibile scegliere uno dei tre metodi seguenti:

  • In caso di connessione a un'istanza di SQL Server, la cache IntelliSense non rifletterà le modifiche apportate se l'utente o altri utenti eseguono il comando CREATE, ALTER o DROP su quell'istanza durante la sessione di modifica Transact-SQL. Per aggiornare la cache IntelliSense, selezionare il menu Modifica, quindi IntelliSense e fare clic su Aggiorna cache locale

  • Utilizzare la scelta rapida da tastiera CTRL+K seguita da CTRL+R.

  • Gli elenchi di completamento non includono oggetti di database per cui non si dispone di autorizzazioni. Tramite IntelliSense vengono contrassegnati i riferimenti a oggetti per i quali si dispone di autorizzazioni. Se, ad esempio, si apre uno script scritto da un altro utente, qualsiasi riferimento a oggetti per i quali l'autore dispone di autorizzazioni e l'utente che apre lo script no viene contrassegnato come non corretto.

  • Gli elenchi di completamento potrebbero smettere di funzionare se si perde la connessione all'istanza di SQL Server. Connettersi di nuovo all'istanza.

Vedere anche

Altre risorse

Cenni preliminari su Transact-SQL IntelliSense

Utilizzo della corrispondenza tra delimitatori di Transact-SQL

Utilizzo di frammenti di codice Transact-SQL

Sintassi Transact-SQL supportata da IntelliSense