Condividi tramite


Procedura dettagliata: esecuzione del debug di una funzione scalare CLR SQL definita dall'utente

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.

In questo esempio viene illustrato come eseguire il debug di una funzione CLR SQL definita dall'utente (UDF, User Defined Function). Viene creata una nuova funzione CLR SQL definita dall'utente nel database di esempio AdventureWorks.

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 funzione scalare CLR SQL definita dall'utente

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

  2. Creare una nuova funzione utilizzando il codice della prima sezione relativa agli esempi e denominarla OrderCount.cs. Per ulteriori informazioni, vedere Procedura: sviluppare con il tipo di progetto SQL Server.

  3. Aggiungere uno script che provi la funzione includendola in un'istruzione SELECT. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla directory Script di test, scegliere Aggiungi script di prova e inserire il codice contenuto nella seconda sezione relativa agli esempi. Salvare il file con il nome CallOrderCount.sql. Fare clic con il pulsante destro del mouse sul nome del file e scegliere Imposta come script di debug predefinito.

  4. Inserire un punto di interruzione in OrderCount.cs sulla riga in cui viene creata un'istanza di SqlCommand e 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 funzione.

  5. Provare più funzionalità di debug.

    1. Per procedere oltre l'istruzione che crea l'istanza di SqlCommand, scegliere Esegui istruzione dal menu Debug.

    2. Nella finestra Variabili locali, aprire la variabile sqlComm, che rappresenta un SqlCommand, ed esaminarne i membri.

    3. Scegliere Esegui istruzione dal menu Debug per eseguire le istruzioni di una riga della funzione. Si noti che è stata creata l'istanza del membro sqlComm.CommandText.

    4. Nell'editor di testo trascinare sqlComm in un punto qualsiasi della finestra Espressioni di controllo. La variabile verrà aggiunta all'elenco delle variabili di controllo.

    5. Scegliere nuovamente Esegui istruzione. Verrà aperta una nuova finestra denominata T-SQL dinamico, contenente l'istruzione SQL da eseguire.

    6. Scegliere Esegui istruzione per eseguire l'istruzione e tornare alla funzione.

    7. Scegliere nuovamente Continua. Nella finestra T-SQL dinamico viene visualizzato il codice che restituisce il valore della funzione.

    8. Scegliere Continua per terminare il debug della funzione.

Esempio

Codice per la creazione della funzione.

using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
 
 
public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)]
    public static int OrderCount()
    {
        using (SqlConnection conn = new SqlConnection("context connection=true"))
            {
                  conn.Open();
                  SqlCommand cmd = new SqlCommand();
                  cmd.Connection = conn;
                  cmd.CommandText = "SELECT 42";
                  
                  //cmd = new SqlCommand("SELECT 42",conn);
 
                  int result = (int)cmd.ExecuteScalar();
                  return result;
            }
    }
};

Script di prova da cui viene chiamata la funzione.

SELECT dbo.OrderCount()

Vedere anche

Attività

Procedura: creare ed eseguire una funzione CLR definita dall'utente di SQL Server

Altre risorse

Esecuzione del debug di database CLR SQL