Procedura: eseguire il debug di una stored procedure CLR SQL
Le informazioni contenute in questo argomento sono valide per:
Edizione |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Visual Studio Professional, Visual Studio Premium e Visual Studio Ultimate |
È possibile eseguire il debug di una stored procedure CLR SQL (Common Language Runtime SQL Server) esistente utilizzando il debug diretto di database in modo analogo al debug di una procedura Transact-SQL. Tuttavia, ciò non funzionerà correttamente se è necessario creare o modificare una routine SQL CLR, perché è necessario compilarla e implementare. Questi passaggi che non esistono per la routine di Transact-SQL. In questo caso, è necessario creare un progetto SQL Server in Visual Studio.
Nell'attività riportata di seguito viene illustrato come creare una nuova stored procedure CLR SQL nel database AdventureWorks, uno dei database installati con SQL Server 2005, e come eseguirne il debug. Verrà creata una stored procedure per l'aggiunta di una nuova valuta alla tabella Sales.Currency.
In questo esempio viene illustrato come eseguire il debug all'interno di un progetto SQL Server. Una volta creata la stored procedure, sarà possibile eseguirne il debug diretto di database. Per ulteriori informazioni, vedere How to: Step into an Object Using Server Explorer.
Nota
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere la classe Gestione delle impostazioni.
Se quando si tenta di eseguire il debug di un oggetto CLR SQL, viene visualizzato il messaggio "Operazione annullata dall'utente", è necessario configurare manualmente sia il computer in cui viene eseguito Visual Studio sia il computer in cui è in esecuzione SQL Server. Per ulteriori informazioni, vedere Procedura: configurare i computer per l'abilitazione del debug di CLR SQL e Transact-SQL.
Per eseguire il debug di una stored procedure CLR SQL
Abilitare il debug remoto. Per ulteriori informazioni, vedere How to: Set Up Remote Debugging.
In un nuovo progetto SQL Server stabilire una connessione al database di esempio AdventureWorks. Per ulteriori informazioni, vedere How to: Connect to a Database.
Creare una nuova stored procedure utilizzando il codice della prima sezione relativa agli esempi riportata di seguito e denominarla InsertCurrency.cs. Per ulteriori informazioni, vedere How to: Develop with the SQL Server Project Type.
Aggiungere uno script con il quale testare la stored procedure chiamandola. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla directory Script di test, scegliere Aggiungi script di test e inserire il codice contenuto nella seconda sezione relativa agli esempi riportata di seguito. Salvare il file con il nome InsertCurrency.sql. Fare clic con il pulsante destro del mouse sul nome del file e scegliere Imposta come script di debug predefinito.
Impostare punti di interruzione in InsertCurrency.cs, quindi scegliere Avvia dal menu Debug per compilare e distribuire il progetto, nonché per eseguirne l'unit test. Quando il puntatore all'istruzione, indicato da una freccia gialla, compare su un punto di interruzione, è in corso il debug della stored procedure.
Provare più funzionalità di debug.
Aprire la finestra Variabili locali e scegliere Esegui istruzione dal menu Debug per eseguire le istruzioni di una riga della stored procedure. Nella finestra Variabili locali il valore della variabile @mynvarchar risulta modificato e visualizzato in rosso a indicare tale modifica. Per ulteriori informazioni, vedere Utilizzo della finestra Variabili locali.
Nota
È possibile che il server non rifletta le modifiche apportate ai valori delle variabili nelle finestre del debugger. Per ulteriori informazioni, vedere Limitazioni del debug di SQL.
Aprire la finestra Espressioni di controllo. Nell'editor di testo trascinare la variabile InsertCurrencyCommand in un punto qualsiasi della finestra Espressioni di controllo.
La variabile verrà aggiunta all'elenco delle variabili di controllo. Per ulteriori informazioni, vedere How to: Use Debugger Variable Windows.
Nota È possibile modificare i valori delle variabili anche nella finestra Espressioni di controllo.
Nell'editor di testo fare clic con il pulsante destro del mouse sulla riga InsertCurrencyCommand.ExecuteNonQuery e scegliere Inserisci punto di interruzione dal menu di scelta rapida.
Scegliere Continua dal menu Debug. Il debugger eseguirà il codice fino al nuovo punto di interruzione.
Scegliere nuovamente Continua per terminare il debug della stored procedure.
Nella finestra Output un messaggio indica che la stored procedure è stata distribuita correttamente e visualizza il risultato dell'esecuzione dei comandi nel file InsertCurrency.sql.
Esempio
Sostituire il modello della stored procedure con questo codice.
using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlServer;
using System.Data.SqlTypes;
public partial class StoredProcedures
{
[SqlProcedure]
public static void InsertCurrency(SqlString currencyCode,
SqlString name)
{
using(SqlConnection conn = new SqlConnection("context connection=true")) {
SqlCommand cmd = new SqlCommand([your SQL statement], conn);
}
InsertCurrencyCommand.CommandText = "insert Sales.Currency"
+ " (CurrencyCode, Name, ModifiedDate) values('"
+ currencyCode.ToString() + "', '"
+ name.ToString() + "', '"
+ DateTime.Now.ToString() + "')";
InsertCurrencyCommand.ExecuteNonQuery();
}
}
Script di test utilizzato per eseguire la stored procedure.
- Delete any row that might exist with a key value
- that matches the one we are going to insert
DELETE Sales.Currency
WHERE CurrencyCode = 'eee'
EXEC InsertCurrency 'eee', 'MyCurr4'
SELECT * FROM Sales.Currency WHERE CurrencyCode = 'eee'
Vedere anche
Attività
Altre risorse
Procedura: configurare i computer per l'abilitazione del debug di CLR SQL e Transact-SQL