Condividi tramite


Limitazioni dei comandi e delle funzionalità del debugger

Aggiornamento: novembre 2007

Le informazioni contenute in questo argomento sono valide per:

Edition

Visual Basic

C#

C++

Web Developer

Express

Argomento non applicabile Argomento non applicabile Argomento non applicabile Argomento non applicabile

Standard

Argomento non applicabile Argomento non applicabile Argomento non applicabile Argomento non applicabile

Pro e Team

Argomento applicabile Argomento applicabile Argomento applicabile Argomento applicabile

Legenda tabella:

Argomento applicabile

Applicabile

Argomento non applicabile

Non applicabile

Argomento valido ma comando nascosto per impostazione predefinita

Comando o comandi nascosti per impostazione predefinita.

Nel debugger SQL sono disponibili molte delle funzionalità di debug comuni, ma non tutte. Il debug di SQL supporta la maggior parte dei comandi del debugger, ad esempio quelli per l'impostazione dei punti di interruzione e l'esecuzione delle istruzioni. È possibile visualizzare i valori delle variabili e dei parametri passati nella finestra Variabili Locali nonché trascinare le espressioni nella finestra Espressioni di controllo per tenerne traccia mentre si procede un'istruzione alla volta o si esegue la procedura.

Tuttavia, il debug SQL avviene in un ambiente molto diverso, date alcune caratteristiche base di SQL Server. Alcune limitazioni riguardano unicamente il debug T-SQL o CLR SQL, altre riguardano il debug SQL nel suo complesso.

Limitazioni generali del debug SQL

  • Non è possibile utilizzare Modifica e continuazione.

  • Non è possibile utilizzare Esegui fino al cursore nella finestra Stack di chiamate.

  • Non è possibile utilizzare Interrompi durante l'esecuzione di un'istruzione SQL.

  • L'output di istruzioni PRINT di SQL non viene visualizzato nel debugger o nel riquadro Output database.

  • Non è possibile utilizzare Rollback automatico in Visual Studio. Se si riproduce un errore che causa la modifica dei dati, è possibile che vada perso perché i dati sono cambiati.

  • Alcune finestre non sono disponibili o non forniscono alcuna funzionalità. Tali finestre sono le seguenti:

    • Memoria

    • 3DNow!

    • Disassembly per T-SQL

Limitazioni del debug T-SQL

  • Le condizioni e i filtri del punto di interruzione non sono supportate.

  • Poiché SQL non dispone di memoria effettiva né di registri, non è possibile utilizzare la finestra Memoria o la finestra Registri.

  • Non è possibile utilizzare Imposta istruzione successiva per modificare la sequenza di esecuzione. È necessario seguire il controllo di flusso e l'ordine delle istruzioni nel codice SQL. Una soluzione possibile consiste nell'inserire istruzioni di controllo attorno a blocchi di codice SQL e modificare i valori delle variabili.

  • Non è possibile accedere a qualsiasi proprietà o variabile di .Net Framework dall'interno di un oggetto T-SQL.

  • La finestra di controllo immediato viene visualizzata, ma non consente di eseguire operazioni utili quali l'impostazione di una variabile su un valore o l'esecuzione di query nel database.

  • Alcune finestre non sono disponibili o non forniscono alcuna funzionalità. Tali finestre sono le seguenti:

    • Disassembly

    • Thread

    • Registri

    • Processi

    • Moduli

Limitazioni del debug CLR SQL

  • Poiché l'esecuzione del codice CLR SQL si blocca quando è in corso il debug CLR SQL, può tenersi una sola sessione di debug CLR SQL per server. Di conseguenza, l'utente del debugger deve disporre dei privilegi di amministratore del sistema SQL per eseguire il debug CLR SQL.

  • Il debug CLR SQL non deve mai essere eseguito in un server di produzione. Il debug CLR SQL è rischioso: il debugger CLR SQL è in grado di leggere e scrivere nella memoria del processo e di eseguire codice arbitrario nel processo server. Comporta l'arresto di tutti i thread gestiti nel server. Quando si termina una sessione di debug, SQL Server può bloccarsi.

  • Non è possibile accedere a variabili SQL globali, quali @@ROWCOUNT, dall'interno di un oggetto CLR/SQL.

  • In un progetto SQL Server di Visual Studio è possibile aggiungere riferimenti solo a un sottoinsieme delle librerie di classi .NET Framework. Non è possibile aggiungere riferimenti a tutti gli assembly.

Vedere anche

Concetti

Limitazioni del debug di SQL

Debug di SQL