Condividi tramite


Procedura: eseguire il debug di una stored procedure CLR SQL

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.

È possibile eseguire il debug di una stored procedure CLR SQL esistente utilizzando il debug diretto di database in modo analogo al debug di una stored procedure T-SQL. Tuttavia, non sarà possibile procedere in questo modo qualora fosse necessario creare o modificare una stored procedure CLR SQL che richiede la compilazione e la distribuzione, operazioni non previste per la stored procedure T-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 Procedura: eseguire istruzioni in un oggetto con Esplora server.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Per modificare le impostazioni, scegliere Importa/esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per eseguire il debug di una stored procedure CLR SQL

  1. In un nuovo progetto SQL Server stabilire una connessione al database di esempio AdventureWorks. Per ulteriori informazioni, vedere la classe Procedura: connettersi a un database.

  2. 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 Procedura: sviluppare con il tipo di progetto SQL Server.

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

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

  5. Provare più funzionalità di debug.

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

    2. 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 Procedura: utilizzare le finestre delle variabili di debug.

      Nota   È possibile modificare i valori delle variabili anche nella finestra Espressioni di controllo.

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

    4. Scegliere Continua dal menu Debug. Il debugger eseguirà il codice fino al nuovo punto di interruzione.

  6. 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à

Procedura: creare ed eseguire una stored procedure CLR di SQL Server

Altre risorse

Esecuzione del debug di database CLR SQL